mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
(D3D9) Only d3d9_renderchain_add_lut requires create_texture_from_file now,
so split up into two separate functions - this function requires D3DX which we intend to get rid of long-term
This commit is contained in:
parent
372ac81ee1
commit
0df2be001e
@ -254,35 +254,39 @@ void d3d9_deinitialize_symbols(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
void *d3d9_texture_new(void *_dev,
|
||||
void *d3d9_texture_new_from_file(void *_dev,
|
||||
const char *path, unsigned width, unsigned height,
|
||||
unsigned miplevels, unsigned usage, INT32 format,
|
||||
INT32 pool, unsigned filter, unsigned mipfilter,
|
||||
INT32 color_key, void *src_info_data,
|
||||
PALETTEENTRY *palette, bool want_mipmap)
|
||||
{
|
||||
#ifdef HAVE_D3DX
|
||||
LPDIRECT3DDEVICE9 dev = (LPDIRECT3DDEVICE9)_dev;
|
||||
void *buf = NULL;
|
||||
if (SUCCEEDED(D3D9CreateTextureFromFile((LPDIRECT3DDEVICE9)dev,
|
||||
path, width, height, miplevels, usage, format,
|
||||
(D3DPOOL)pool, filter, mipfilter, color_key,
|
||||
(D3DXIMAGE_INFO*)src_info_data,
|
||||
palette, (struct IDirect3DTexture9**)&buf)))
|
||||
return buf;
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *d3d9_texture_new(void *_dev,
|
||||
unsigned width, unsigned height,
|
||||
unsigned miplevels, unsigned usage, INT32 format,
|
||||
INT32 pool, unsigned filter, unsigned mipfilter,
|
||||
INT32 color_key, void *src_info_data,
|
||||
PALETTEENTRY *palette, bool want_mipmap)
|
||||
{
|
||||
LPDIRECT3DDEVICE9 dev = (LPDIRECT3DDEVICE9)_dev;
|
||||
void *buf = NULL;
|
||||
|
||||
if (path)
|
||||
{
|
||||
#ifdef HAVE_D3DX
|
||||
void *buf = NULL;
|
||||
if (SUCCEEDED(D3D9CreateTextureFromFile((LPDIRECT3DDEVICE9)dev,
|
||||
path, width, height, miplevels, usage, format,
|
||||
(D3DPOOL)pool, filter, mipfilter, color_key,
|
||||
(D3DXIMAGE_INFO*)src_info_data,
|
||||
palette, (struct IDirect3DTexture9**)&buf)))
|
||||
return buf;
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifndef _XBOX
|
||||
if (want_mipmap)
|
||||
usage |= D3DUSAGE_AUTOGENMIPMAP;
|
||||
#endif
|
||||
|
||||
if (FAILED(IDirect3DDevice9_CreateTexture(dev,
|
||||
width, height, miplevels, usage,
|
||||
(D3DFORMAT)format,
|
||||
@ -1147,7 +1151,7 @@ void d3d9_set_menu_texture_frame(void *data,
|
||||
{
|
||||
IDirect3DTexture9_Release((LPDIRECT3DTEXTURE9)d3d->menu->tex);
|
||||
|
||||
d3d->menu->tex = d3d9_texture_new(d3d->dev, NULL,
|
||||
d3d->menu->tex = d3d9_texture_new(d3d->dev,
|
||||
width, height, 1,
|
||||
0, D3D9_ARGB8888_FORMAT,
|
||||
D3DPOOL_MANAGED, 0, 0, 0, NULL, NULL, false);
|
||||
@ -1239,7 +1243,7 @@ static void d3d9_video_texture_load_d3d(
|
||||
(info->type == TEXTURE_FILTER_MIPMAP_NEAREST))
|
||||
want_mipmap = true;
|
||||
|
||||
tex = (LPDIRECT3DTEXTURE9)d3d9_texture_new(d3d->dev, NULL,
|
||||
tex = (LPDIRECT3DTEXTURE9)d3d9_texture_new(d3d->dev,
|
||||
ti->width, ti->height, 0,
|
||||
usage, D3D9_ARGB8888_FORMAT,
|
||||
D3DPOOL_MANAGED, 0, 0, 0,
|
||||
@ -1574,7 +1578,7 @@ static bool d3d9_overlay_load(void *data,
|
||||
unsigned height = images[i].height;
|
||||
overlay_t *overlay = (overlay_t*)&d3d->overlays[i];
|
||||
|
||||
overlay->tex = d3d9_texture_new(d3d->dev, NULL,
|
||||
overlay->tex = d3d9_texture_new(d3d->dev,
|
||||
width, height, 1,
|
||||
0,
|
||||
D3D9_ARGB8888_FORMAT,
|
||||
|
@ -101,6 +101,13 @@ void *d3d9_vertex_buffer_new(void *dev,
|
||||
void d3d9_vertex_buffer_free(void *vertex_data, void *vertex_declaration);
|
||||
|
||||
void *d3d9_texture_new(void *dev,
|
||||
unsigned width, unsigned height,
|
||||
unsigned miplevels, unsigned usage, INT32 format,
|
||||
INT32 pool, unsigned filter, unsigned mipfilter,
|
||||
INT32 color_key, void *src_info,
|
||||
PALETTEENTRY *palette, bool want_mipmap);
|
||||
|
||||
void *d3d9_texture_new_from_file(void *dev,
|
||||
const char *path, unsigned width, unsigned height,
|
||||
unsigned miplevels, unsigned usage, INT32 format,
|
||||
INT32 pool, unsigned filter, unsigned mipfilter,
|
||||
|
@ -111,7 +111,6 @@ static INLINE bool d3d9_renderchain_add_pass(d3d9_renderchain_t *chain,
|
||||
|
||||
tex = (LPDIRECT3DTEXTURE9)d3d9_texture_new(
|
||||
chain->dev,
|
||||
NULL,
|
||||
info->tex_w,
|
||||
info->tex_h,
|
||||
1,
|
||||
@ -141,7 +140,7 @@ static INLINE bool d3d9_renderchain_add_lut(d3d9_renderchain_t *chain,
|
||||
{
|
||||
struct lut_info info;
|
||||
LPDIRECT3DTEXTURE9 lut = (LPDIRECT3DTEXTURE9)
|
||||
d3d9_texture_new(
|
||||
d3d9_texture_new_from_file(
|
||||
chain->dev,
|
||||
path,
|
||||
D3D_DEFAULT_NONPOW2,
|
||||
@ -283,7 +282,7 @@ static INLINE bool d3d9_renderchain_set_pass_size(
|
||||
pass->info.tex_h = height;
|
||||
pass->pool = D3DPOOL_DEFAULT;
|
||||
pass->tex = (LPDIRECT3DTEXTURE9)
|
||||
d3d9_texture_new(dev, NULL,
|
||||
d3d9_texture_new(dev,
|
||||
width, height, 1,
|
||||
D3DUSAGE_RENDERTARGET,
|
||||
pass2->info.pass->fbo.fp_fbo ?
|
||||
|
@ -813,7 +813,7 @@ static bool d3d9_cg_renderchain_create_first_pass(
|
||||
return false;
|
||||
|
||||
chain->prev.tex[i] = (LPDIRECT3DTEXTURE9)
|
||||
d3d9_texture_new(chain->dev, NULL,
|
||||
d3d9_texture_new(chain->dev,
|
||||
info->tex_w, info->tex_h, 1, 0, fmt,
|
||||
D3DPOOL_MANAGED, 0, 0, 0, NULL, NULL, false);
|
||||
|
||||
|
@ -322,7 +322,7 @@ static bool hlsl_d3d9_renderchain_create_first_pass(
|
||||
return false;
|
||||
|
||||
chain->prev.tex[i] = (LPDIRECT3DTEXTURE9)
|
||||
d3d9_texture_new(chain->dev, NULL,
|
||||
d3d9_texture_new(chain->dev,
|
||||
info->tex_w, info->tex_h, 1, 0, fmt,
|
||||
D3DPOOL_MANAGED, 0, 0, 0, NULL, NULL, false);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user