mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
Create d3d pixel shader/vertex shader functions
This commit is contained in:
parent
d7df6b3729
commit
df2a31b0e9
@ -1051,6 +1051,44 @@ void d3d_free_pixel_shader(LPDIRECT3DDEVICE dev, void *data)
|
||||
#endif
|
||||
}
|
||||
|
||||
bool d3d_create_vertex_shader(LPDIRECT3DDEVICE dev, const DWORD *a, void **b)
|
||||
{
|
||||
#ifdef HAVE_D3D9
|
||||
if (!dev)
|
||||
return false;
|
||||
#if defined(__cplusplus)
|
||||
if (dev->CreateVertexShader(a, b) != D3D_OK)
|
||||
return false;
|
||||
#else
|
||||
if (IDirect3DDevice9_CreateVertexShader(dev, a,
|
||||
(LPDIRECT3DVERTEXSHADER*)b) != D3D_OK)
|
||||
return false;
|
||||
#endif
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool d3d_create_pixel_shader(LPDIRECT3DDEVICE dev, const DWORD *a, void **b)
|
||||
{
|
||||
#ifdef HAVE_D3D9
|
||||
if (!dev)
|
||||
return false;
|
||||
#if defined(__cplusplus)
|
||||
if (dev->CreatePixelShader(a, b) != D3D_OK)
|
||||
return false;
|
||||
#else
|
||||
if (IDirect3DDevice9_CreatePixelShader(dev, a,
|
||||
(LPDIRECT3DPIXELSHADER*)b) != D3D_OK)
|
||||
return false;
|
||||
#endif
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool d3d_set_pixel_shader(LPDIRECT3DDEVICE dev, void *data)
|
||||
{
|
||||
#ifdef HAVE_D3D9
|
||||
|
@ -93,6 +93,12 @@ void d3d_unlock_rectangle(LPDIRECT3DTEXTURE tex);
|
||||
void d3d_set_texture(LPDIRECT3DDEVICE dev, unsigned sampler,
|
||||
void *tex_data);
|
||||
|
||||
bool d3d_create_vertex_shader(LPDIRECT3DDEVICE dev,
|
||||
const DWORD *a, void **b);
|
||||
|
||||
bool d3d_create_pixel_shader(LPDIRECT3DDEVICE dev,
|
||||
const DWORD *a, void **b);
|
||||
|
||||
void d3d_free_pixel_shader(LPDIRECT3DDEVICE dev, void *data);
|
||||
|
||||
void d3d_free_vertex_shader(LPDIRECT3DDEVICE dev, void *data);
|
||||
|
@ -484,22 +484,20 @@ static HRESULT xdk360_video_font_create_shaders(xdk360_video_font_t * font)
|
||||
|
||||
if (hr >= 0)
|
||||
{
|
||||
hr = d3dr->CreateVertexShader((const DWORD*)pShaderCode->GetBufferPointer(),
|
||||
&font->s_FontLocals.m_pFontVertexShader );
|
||||
bool ret = d3d_create_vertex_shader(d3dr, (const DWORD*)pShaderCode->GetBufferPointer(), &font->s_FontLocals.m_pFontVertexShader );
|
||||
d3dxbuffer_release(pShaderCode);
|
||||
|
||||
if (hr >= 0)
|
||||
if (!ret)
|
||||
{
|
||||
hr = D3DXCompileShader(font_hlsl_d3d9_program, sizeof(font_hlsl_d3d9_program)-1 ,
|
||||
NULL, NULL, "main_fragment", "ps.2.0", 0,&pShaderCode, NULL, NULL );
|
||||
|
||||
if (hr >= 0)
|
||||
{
|
||||
hr = d3dr->CreatePixelShader((DWORD*)pShaderCode->GetBufferPointer(),
|
||||
&font->s_FontLocals.m_pFontPixelShader );
|
||||
ret = d3d_create_pixel_shader(d3dr, (DWORD*)pShaderCode->GetBufferPointer(), &font->s_FontLocals.m_pFontPixelShader);
|
||||
d3dxbuffer_release(pShaderCode);
|
||||
|
||||
if (hr >= 0)
|
||||
if (!ret)
|
||||
{
|
||||
hr = 0;
|
||||
break;
|
||||
|
@ -81,14 +81,6 @@ typedef struct hlsl_shader_data hlsl_shader_data_t;
|
||||
#define ID3DXConstantTable_GetConstantByName(p,a,b) ((p)->GetConstantByName(a, b))
|
||||
#endif
|
||||
|
||||
#ifndef IDirect3DDevice9_CreatePixelShader
|
||||
#define IDirect3DDevice9_CreatePixelShader(p, a, b) ((p)->CreatePixelShader(a, b))
|
||||
#endif
|
||||
|
||||
#ifndef IDirect3DDevice9_CreateVertexShader
|
||||
#define IDirect3DDevice9_CreateVertexShader(p, a, b) ((p)->CreateVertexShader(a, b))
|
||||
#endif
|
||||
|
||||
#ifndef ID3DXConstantTable_SetMatrix
|
||||
#define ID3DXConstantTable_SetMatrix(p,a,b,c) ((p)->SetMatrix(a,b,c))
|
||||
#endif
|
||||
@ -281,8 +273,8 @@ static bool hlsl_compile_program(
|
||||
goto end;
|
||||
}
|
||||
|
||||
IDirect3DDevice9_CreatePixelShader(d3dr, (const DWORD*)ID3DXConstantTable_GetBufferPointer(code_f), &program->fprg);
|
||||
IDirect3DDevice9_CreateVertexShader(d3dr, (const DWORD*)ID3DXConstantTable_GetBufferPointer(code_v), &program->vprg);
|
||||
d3d_create_pixel_shader(d3dr, (const DWORD*)ID3DXConstantTable_GetBufferPointer(code_f), &program->fprg);
|
||||
d3d_create_vertex_shader(d3dr, (const DWORD*)ID3DXConstantTable_GetBufferPointer(code_v), &program->vprg);
|
||||
d3dxbuffer_release((void*)code_f);
|
||||
d3dxbuffer_release((void*)code_v);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user