![Старый](images/statusicon/post_old.gif)
20.02.2016, 00:16
|
![Аватар для Klyaksa](image.php?s=4ce5ab08b1384d21ffb4849864d79ec0&u=19739&dateline=1330266460) |
Новичок
|
|
Регистрация: 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);//Красный
Последний раз редактировалось Klyaksa, 20.02.2016 в 00:40.
|