Показать сообщение отдельно
  #1  
Старый 20.02.2016, 00:16
Аватар для Klyaksa
Klyaksa Klyaksa вне форума
Новичок
 
Регистрация: 07.01.2012
Сообщения: 90
Репутация: 10
По умолчанию Работа с PixelShader

Всем привет! На днях хотел заюзать PixelShader поискал по инету нашел такой вот код (часто втречающийся)
Код:
HRESULT GenerateShader(IDirect3DDevice9 *pDevice, IDirect3DPixelShader9 **pixelShader, float r, float g, float b )
{
	char szShader[ 256 ];
	ID3DXBuffer *pShaderBuf = NULL;
	sprintf( szShader, "ps.2.0\ndef c0, %f, %f, %f, %f\nmov oC0,c0", r, g, b, 1.0f );
	D3DXAssembleShader( szShader, sizeof( szShader ), NULL, NULL, 0, &pShaderBuf, NULL );
	if( FAILED( pDevice->CreatePixelShader((const DWORD*)pShaderBuf->GetBufferPointer(), pixelShader)) )return E_FAIL;
	return S_OK;
}
Вроде и все можно запускать но не хочет он работать, приложение крашится и все. Где косяк то? Может есть другой способ создание своего шейдера? Юзаю так
Код:
GenerateShader( pDevice, &Shade_Red,    1.0f, 0.0f, 0.0f);//Красный
Ответить с цитированием