(D3D9 HLSL) Simplifications

This commit is contained in:
libretroadmin 2022-05-16 12:01:23 +02:00
parent 5ffd95aa1b
commit 88d0a4ac75
3 changed files with 16 additions and 41 deletions

View File

@ -439,17 +439,6 @@ bool d3d9x_create_font_indirect(void *_dev,
return false;
}
void d3d9x_buffer_release(void *data)
{
#ifdef HAVE_D3DX
LPD3DXBUFFER p = (LPD3DXBUFFER)data;
if (!p)
return;
p->lpVtbl->Release(p);
#endif
}
bool d3d9x_compile_shader(
const char *src,
unsigned src_data_len,
@ -538,16 +527,6 @@ bool d3d9x_compile_shader_from_file(
return false;
}
const void *d3d9x_get_buffer_ptr(void *data)
{
#if defined(HAVE_D3DX)
ID3DXBuffer *listing = (ID3DXBuffer*)data;
if (listing)
return listing->lpVtbl->GetBufferPointer(listing);
#endif
return NULL;
}
void *d3d9x_constant_table_get_constant_by_name(void *_tbl,
void *_handle, void *_name)
{

View File

@ -174,8 +174,6 @@ void d3d9x_font_draw_text(void *data, void *sprite_data, void *string_data,
void d3d9x_font_get_text_metrics(void *data, void *metrics);
void d3d9x_buffer_release(void *data);
void d3d9x_font_release(void *data);
bool d3d9x_compile_shader(
@ -210,8 +208,6 @@ void d3d9x_constant_table_set_defaults(LPDIRECT3DDEVICE9 dev,
void d3d9x_constant_table_set_matrix(LPDIRECT3DDEVICE9 dev,
void *p, void *data, const void *matrix);
const void *d3d9x_get_buffer_ptr(void *data);
const bool d3d9x_constant_table_set_float(void *p,
void *a, void *b, float val);

View File

@ -156,24 +156,24 @@ static bool d3d9_hlsl_load_program_from_file(
}
IDirect3DDevice9_CreatePixelShader(dev,
(const DWORD*)d3d9x_get_buffer_ptr(code_f),
(const DWORD*)code_f->lpVtbl->GetBufferPointer(code_f),
(LPDIRECT3DPIXELSHADER9*)&pass->fprg);
IDirect3DDevice9_CreateVertexShader(dev,
(const DWORD*)d3d9x_get_buffer_ptr(code_v),
(const DWORD*)code_v->lpVtbl->GetBufferPointer(code_v),
(LPDIRECT3DVERTEXSHADER9*)&pass->vprg);
d3d9x_buffer_release((void*)code_f);
d3d9x_buffer_release((void*)code_v);
code_f->lpVtbl->Release(code_f);
code_v->lpVtbl->Release(code_v);
return true;
error:
RARCH_ERR("Cg/HLSL error:\n");
if (listing_f)
RARCH_ERR("Fragment:\n%s\n", (char*)d3d9x_get_buffer_ptr(listing_f));
RARCH_ERR("Fragment:\n%s\n", (char*)listing_f->lpVtbl->GetBufferPointer(listing_f));
if (listing_v)
RARCH_ERR("Vertex:\n%s\n", (char*)d3d9x_get_buffer_ptr(listing_v));
d3d9x_buffer_release((void*)listing_f);
d3d9x_buffer_release((void*)listing_v);
RARCH_ERR("Vertex:\n%s\n", (char*)listing_v->lpVtbl->GetBufferPointer(listing_v));
listing_f->lpVtbl->Release(listing_f);
listing_v->lpVtbl->Release(listing_v);
return false;
}
@ -204,24 +204,24 @@ static bool d3d9_hlsl_load_program(
}
IDirect3DDevice9_CreatePixelShader(dev,
(const DWORD*)d3d9x_get_buffer_ptr(code_f),
(const DWORD*)code_f->lpVtbl->GetBufferPointer(code_f),
(LPDIRECT3DPIXELSHADER9*)&pass->fprg);
IDirect3DDevice9_CreateVertexShader(dev,
(const DWORD*)d3d9x_get_buffer_ptr(code_v),
(const DWORD*)code_v->lpVtbl->GetBufferPointer(code_v),
(LPDIRECT3DVERTEXSHADER9*)&pass->vprg);
d3d9x_buffer_release((void*)code_f);
d3d9x_buffer_release((void*)code_v);
code_f->lpVtbl->Release(code_f);
code_v->lpVtbl->Release(code_v);
return true;
error:
RARCH_ERR("Cg/HLSL error:\n");
if (listing_f)
RARCH_ERR("Fragment:\n%s\n", (char*)d3d9x_get_buffer_ptr(listing_f));
RARCH_ERR("Fragment:\n%s\n", (char*)listing_f->lpVtbl->GetBufferPointer(listing_f));
if (listing_v)
RARCH_ERR("Vertex:\n%s\n", (char*)d3d9x_get_buffer_ptr(listing_v));
d3d9x_buffer_release((void*)listing_f);
d3d9x_buffer_release((void*)listing_v);
RARCH_ERR("Vertex:\n%s\n", (char*)listing_v->lpVtbl->GetBufferPointer(listing_v));
listing_f->lpVtbl->Release(listing_f);
listing_v->lpVtbl->Release(listing_v);
return false;
}