mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 04:14:00 +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
|
#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)
|
bool d3d_set_pixel_shader(LPDIRECT3DDEVICE dev, void *data)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_D3D9
|
#ifdef HAVE_D3D9
|
||||||
|
@ -93,6 +93,12 @@ void d3d_unlock_rectangle(LPDIRECT3DTEXTURE tex);
|
|||||||
void d3d_set_texture(LPDIRECT3DDEVICE dev, unsigned sampler,
|
void d3d_set_texture(LPDIRECT3DDEVICE dev, unsigned sampler,
|
||||||
void *tex_data);
|
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_pixel_shader(LPDIRECT3DDEVICE dev, void *data);
|
||||||
|
|
||||||
void d3d_free_vertex_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)
|
if (hr >= 0)
|
||||||
{
|
{
|
||||||
hr = d3dr->CreateVertexShader((const DWORD*)pShaderCode->GetBufferPointer(),
|
bool ret = d3d_create_vertex_shader(d3dr, (const DWORD*)pShaderCode->GetBufferPointer(), &font->s_FontLocals.m_pFontVertexShader );
|
||||||
&font->s_FontLocals.m_pFontVertexShader );
|
|
||||||
d3dxbuffer_release(pShaderCode);
|
d3dxbuffer_release(pShaderCode);
|
||||||
|
|
||||||
if (hr >= 0)
|
if (!ret)
|
||||||
{
|
{
|
||||||
hr = D3DXCompileShader(font_hlsl_d3d9_program, sizeof(font_hlsl_d3d9_program)-1 ,
|
hr = D3DXCompileShader(font_hlsl_d3d9_program, sizeof(font_hlsl_d3d9_program)-1 ,
|
||||||
NULL, NULL, "main_fragment", "ps.2.0", 0,&pShaderCode, NULL, NULL );
|
NULL, NULL, "main_fragment", "ps.2.0", 0,&pShaderCode, NULL, NULL );
|
||||||
|
|
||||||
if (hr >= 0)
|
if (hr >= 0)
|
||||||
{
|
{
|
||||||
hr = d3dr->CreatePixelShader((DWORD*)pShaderCode->GetBufferPointer(),
|
ret = d3d_create_pixel_shader(d3dr, (DWORD*)pShaderCode->GetBufferPointer(), &font->s_FontLocals.m_pFontPixelShader);
|
||||||
&font->s_FontLocals.m_pFontPixelShader );
|
|
||||||
d3dxbuffer_release(pShaderCode);
|
d3dxbuffer_release(pShaderCode);
|
||||||
|
|
||||||
if (hr >= 0)
|
if (!ret)
|
||||||
{
|
{
|
||||||
hr = 0;
|
hr = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -81,14 +81,6 @@ typedef struct hlsl_shader_data hlsl_shader_data_t;
|
|||||||
#define ID3DXConstantTable_GetConstantByName(p,a,b) ((p)->GetConstantByName(a, b))
|
#define ID3DXConstantTable_GetConstantByName(p,a,b) ((p)->GetConstantByName(a, b))
|
||||||
#endif
|
#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
|
#ifndef ID3DXConstantTable_SetMatrix
|
||||||
#define ID3DXConstantTable_SetMatrix(p,a,b,c) ((p)->SetMatrix(a,b,c))
|
#define ID3DXConstantTable_SetMatrix(p,a,b,c) ((p)->SetMatrix(a,b,c))
|
||||||
#endif
|
#endif
|
||||||
@ -281,8 +273,8 @@ static bool hlsl_compile_program(
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
IDirect3DDevice9_CreatePixelShader(d3dr, (const DWORD*)ID3DXConstantTable_GetBufferPointer(code_f), &program->fprg);
|
d3d_create_pixel_shader(d3dr, (const DWORD*)ID3DXConstantTable_GetBufferPointer(code_f), &program->fprg);
|
||||||
IDirect3DDevice9_CreateVertexShader(d3dr, (const DWORD*)ID3DXConstantTable_GetBufferPointer(code_v), &program->vprg);
|
d3d_create_vertex_shader(d3dr, (const DWORD*)ID3DXConstantTable_GetBufferPointer(code_v), &program->vprg);
|
||||||
d3dxbuffer_release((void*)code_f);
|
d3dxbuffer_release((void*)code_f);
|
||||||
d3dxbuffer_release((void*)code_v);
|
d3dxbuffer_release((void*)code_v);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user