Don't rely on LPDIRECT3DTEXTURE

This commit is contained in:
twinaphex 2018-01-25 04:28:50 +01:00
parent 26f9489f89
commit 0588c3c68e
6 changed files with 148 additions and 116 deletions

View File

@ -543,39 +543,43 @@ void d3d_set_transform(void *_dev,
} }
} }
bool d3d_texture_get_level_desc(LPDIRECT3DTEXTURE tex, bool d3d_texture_get_level_desc(void *_tex,
unsigned idx, void *_ppsurface_level) unsigned idx, void *_ppsurface_level)
{ {
if (!tex)
return false;
switch (d3d_common_api) switch (d3d_common_api)
{ {
case GFX_CTX_DIRECT3D9_API: case GFX_CTX_DIRECT3D9_API:
{
#ifdef HAVE_D3D9 #ifdef HAVE_D3D9
LPDIRECT3DTEXTURE9 tex = (LPDIRECT3DTEXTURE9)_tex;
#ifdef __cplusplus #ifdef __cplusplus
if (SUCCEEDED(tex->GetLevelDesc(idx, (D3DSURFACE_DESC*)_ppsurface_level))) if (SUCCEEDED(tex->GetLevelDesc(idx, (D3DSURFACE_DESC*)_ppsurface_level)))
return true; return true;
#else #else
#if defined(_XBOX) #if defined(_XBOX)
D3DTexture_GetLevelDesc(tex, idx, (D3DSURFACE_DESC*)_ppsurface_level); D3DTexture_GetLevelDesc(tex, idx, (D3DSURFACE_DESC*)_ppsurface_level);
return true;
#else
if (SUCCEEDED(IDirect3DTexture9_GetLevelDesc(tex, idx, (D3DSURFACE_DESC*)_ppsurface_level)))
return true; return true;
#else
if (SUCCEEDED(IDirect3DTexture9_GetLevelDesc(tex, idx, (D3DSURFACE_DESC*)_ppsurface_level)))
return true;
#endif #endif
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_DIRECT3D8_API: case GFX_CTX_DIRECT3D8_API:
{
#ifdef HAVE_D3D8 #ifdef HAVE_D3D8
LPDIRECT3DTEXTURE8 tex = (LPDIRECT3DTEXTURE8)_tex;
#ifdef __cplusplus #ifdef __cplusplus
if (SUCCEEDED(tex->GetLevelDesc(idx, (D3DSURFACE_DESC*)_ppsurface_level))) if (SUCCEEDED(tex->GetLevelDesc(idx, (D3DSURFACE_DESC*)_ppsurface_level)))
return true; return true;
#else #else
if (SUCCEEDED(IDirect3DTexture8_GetLevelDesc(tex, idx, (D3DSURFACE_DESC*)_ppsurface_level))) if (SUCCEEDED(IDirect3DTexture8_GetLevelDesc(tex, idx, (D3DSURFACE_DESC*)_ppsurface_level)))
return true; return true;
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_NONE: case GFX_CTX_NONE:
default: default:
@ -585,35 +589,42 @@ bool d3d_texture_get_level_desc(LPDIRECT3DTEXTURE tex,
return false; return false;
} }
bool d3d_texture_get_surface_level(LPDIRECT3DTEXTURE tex, bool d3d_texture_get_surface_level(void *_tex,
unsigned idx, void **_ppsurface_level) unsigned idx, void **_ppsurface_level)
{ {
if (!tex)
return false;
switch (d3d_common_api) switch (d3d_common_api)
{ {
case GFX_CTX_DIRECT3D9_API: case GFX_CTX_DIRECT3D9_API:
{
#ifdef HAVE_D3D9 #ifdef HAVE_D3D9
LPDIRECT3DTEXTURE9 tex = (LPDIRECT3DTEXTURE9)_tex;
if (!tex)
return false;
#ifdef __cplusplus #ifdef __cplusplus
if (SUCCEEDED(tex->GetSurfaceLevel(idx, (ID3DSURFACE**)_ppsurface_level))) if (SUCCEEDED(tex->GetSurfaceLevel(idx, (ID3DSURFACE**)_ppsurface_level)))
return true; return true;
#else #else
if (SUCCEEDED(IDirect3DTexture9_GetSurfaceLevel(tex, idx, (IDirect3DSurface9**)_ppsurface_level))) if (SUCCEEDED(IDirect3DTexture9_GetSurfaceLevel(tex, idx, (IDirect3DSurface9**)_ppsurface_level)))
return true; return true;
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_DIRECT3D8_API: case GFX_CTX_DIRECT3D8_API:
{
#ifdef HAVE_D3D8 #ifdef HAVE_D3D8
LPDIRECT3DTEXTURE8 tex = (LPDIRECT3DTEXTURE8)_tex;
if (!tex)
return false;
#ifdef __cplusplus #ifdef __cplusplus
if (SUCCEEDED(tex->GetSurfaceLevel(idx, (ID3DSURFACE**)_ppsurface_level))) if (SUCCEEDED(tex->GetSurfaceLevel(idx, (ID3DSURFACE**)_ppsurface_level)))
return true; return true;
#else #else
if (SUCCEEDED(IDirect3DTexture8_GetSurfaceLevel(tex, idx, (IDirect3DSurface8**)_ppsurface_level))) if (SUCCEEDED(IDirect3DTexture8_GetSurfaceLevel(tex, idx, (IDirect3DSurface8**)_ppsurface_level)))
return true; return true;
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_NONE: case GFX_CTX_NONE:
default: default:
@ -624,7 +635,7 @@ bool d3d_texture_get_surface_level(LPDIRECT3DTEXTURE tex,
} }
#ifdef HAVE_D3DX #ifdef HAVE_D3DX
static LPDIRECT3DTEXTURE d3d_texture_new_from_file( static void *d3d_texture_new_from_file(
void *dev, void *dev,
const char *path, unsigned width, unsigned height, const char *path, unsigned width, unsigned height,
unsigned miplevels, unsigned usage, D3DFORMAT format, unsigned miplevels, unsigned usage, D3DFORMAT format,
@ -632,42 +643,39 @@ static LPDIRECT3DTEXTURE d3d_texture_new_from_file(
D3DCOLOR color_key, void *src_info_data, D3DCOLOR color_key, void *src_info_data,
PALETTEENTRY *palette) PALETTEENTRY *palette)
{ {
LPDIRECT3DTEXTURE buf = NULL; void *buf = NULL;
HRESULT hr = E_FAIL;
switch (d3d_common_api)
{ {
HRESULT hr = E_FAIL; case GFX_CTX_DIRECT3D9_API:
switch (d3d_common_api)
{
case GFX_CTX_DIRECT3D9_API:
#if defined(HAVE_D3D9) #if defined(HAVE_D3D9)
hr = D3DCreateTextureFromFile((LPDIRECT3DDEVICE9)dev, hr = D3DCreateTextureFromFile((LPDIRECT3DDEVICE9)dev,
path, width, height, miplevels, usage, format, path, width, height, miplevels, usage, format,
pool, filter, mipfilter, color_key, src_info_data, pool, filter, mipfilter, color_key, src_info_data,
palette, &buf); palette, (struct IDirect3DTexture9**)&buf);
#endif #endif
break; break;
case GFX_CTX_DIRECT3D8_API: case GFX_CTX_DIRECT3D8_API:
#if defined(HAVE_D3D8) #if defined(HAVE_D3D8)
hr = D3DCreateTextureFromFile((LPDIRECT3DDEVICE8)dev, hr = D3DCreateTextureFromFile((LPDIRECT3DDEVICE8)dev,
path, width, height, miplevels, usage, format, path, width, height, miplevels, usage, format,
pool, filter, mipfilter, color_key, src_info_data, pool, filter, mipfilter, color_key, src_info_data,
palette, &buf); palette, (struct IDirect3DTeture8**)&buf);
#endif #endif
break; break;
default: default:
break; break;
}
if (FAILED(hr))
return NULL;
} }
if (FAILED(hr))
return NULL;
return buf; return buf;
} }
#endif #endif
LPDIRECT3DTEXTURE d3d_texture_new(void *_dev, void *d3d_texture_new(void *_dev,
const char *path, unsigned width, unsigned height, const char *path, unsigned width, unsigned height,
unsigned miplevels, unsigned usage, D3DFORMAT format, unsigned miplevels, unsigned usage, D3DFORMAT format,
D3DPOOL pool, unsigned filter, unsigned mipfilter, D3DPOOL pool, unsigned filter, unsigned mipfilter,
@ -675,7 +683,7 @@ LPDIRECT3DTEXTURE d3d_texture_new(void *_dev,
PALETTEENTRY *palette, bool want_mipmap) PALETTEENTRY *palette, bool want_mipmap)
{ {
HRESULT hr = S_OK; HRESULT hr = S_OK;
LPDIRECT3DTEXTURE buf = NULL; void *buf = NULL;
if (path) if (path)
{ {
@ -702,11 +710,11 @@ LPDIRECT3DTEXTURE d3d_texture_new(void *_dev,
#ifdef __cplusplus #ifdef __cplusplus
hr = dev->CreateTexture( hr = dev->CreateTexture(
width, height, miplevels, usage, width, height, miplevels, usage,
format, pool, &buf, NULL); format, pool, (LPDIRECT3DTEXTURE9)&buf, NULL);
#else #else
hr = IDirect3DDevice9_CreateTexture(dev, hr = IDirect3DDevice9_CreateTexture(dev,
width, height, miplevels, usage, width, height, miplevels, usage,
format, pool, &buf, NULL); format, pool, (struct IDirect3DTexture9**)&buf, NULL);
#endif #endif
#endif #endif
} }
@ -718,11 +726,11 @@ LPDIRECT3DTEXTURE d3d_texture_new(void *_dev,
#ifdef __cplusplus #ifdef __cplusplus
hr = dev->CreateTexture( hr = dev->CreateTexture(
width, height, miplevels, usage, width, height, miplevels, usage,
format, pool, &buf); format, pool, (LPDIRECT3DTEXTURE8)&buf);
#else #else
hr = IDirect3DDevice8_CreateTexture(dev, hr = IDirect3DDevice8_CreateTexture(dev,
width, height, miplevels, usage, width, height, miplevels, usage,
format, pool, &buf); format, pool, (LPDIRECT3DTEXTURE8)&buf);
#endif #endif
#endif #endif
} }
@ -738,30 +746,37 @@ LPDIRECT3DTEXTURE d3d_texture_new(void *_dev,
return buf; return buf;
} }
void d3d_texture_free(LPDIRECT3DTEXTURE tex) void d3d_texture_free(void *_tex)
{ {
if (!tex)
return;
switch (d3d_common_api) switch (d3d_common_api)
{ {
case GFX_CTX_DIRECT3D9_API: case GFX_CTX_DIRECT3D9_API:
{
#ifdef HAVE_D3D9 #ifdef HAVE_D3D9
LPDIRECT3DTEXTURE9 tex = (LPDIRECT3DTEXTURE9)_tex;
if (!tex)
return;
#ifdef __cplusplus #ifdef __cplusplus
tex->Release(); tex->Release();
#else #else
IDirect3DTexture9_Release(tex); IDirect3DTexture9_Release(tex);
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_DIRECT3D8_API: case GFX_CTX_DIRECT3D8_API:
{
#ifdef HAVE_D3D8 #ifdef HAVE_D3D8
LPDIRECT3DTEXTURE8 tex = (LPDIRECT3DTEXTURE8)_tex;
if (!tex)
return;
#ifdef __cplusplus #ifdef __cplusplus
tex->Release(); tex->Release();
#else #else
IDirect3DTexture8_Release(tex); IDirect3DTexture8_Release(tex);
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_NONE: case GFX_CTX_NONE:
default: default:
@ -1653,37 +1668,47 @@ bool d3d_device_get_render_target(void *_dev,
} }
bool d3d_lock_rectangle(LPDIRECT3DTEXTURE tex, bool d3d_lock_rectangle(void *_tex,
unsigned level, D3DLOCKED_RECT *lock_rect, RECT *rect, unsigned level, D3DLOCKED_RECT *lock_rect, RECT *rect,
unsigned rectangle_height, unsigned flags) unsigned rectangle_height, unsigned flags)
{ {
switch (d3d_common_api) switch (d3d_common_api)
{ {
case GFX_CTX_DIRECT3D9_API: case GFX_CTX_DIRECT3D9_API:
{
#ifdef HAVE_D3D9 #ifdef HAVE_D3D9
LPDIRECT3DTEXTURE9 tex = (LPDIRECT3DTEXTURE9)_tex;
if (!tex)
return false;
#ifdef __cplusplus #ifdef __cplusplus
if (FAILED(tex->LockRect(level, lock_rect, rect, flags))) if (FAILED(tex->LockRect(level, lock_rect, rect, flags)))
return false; return false;
#else #else
#ifdef _XBOX #ifdef _XBOX
IDirect3DTexture9_LockRect(tex, level, lock_rect, (const RECT*)rect, flags); IDirect3DTexture9_LockRect(tex, level, lock_rect, (const RECT*)rect, flags);
#else #else
if (IDirect3DTexture9_LockRect(tex, level, lock_rect, (const RECT*)rect, flags) != D3D_OK) if (IDirect3DTexture9_LockRect(tex, level, lock_rect, (const RECT*)rect, flags) != D3D_OK)
return false; return false;
#endif #endif
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_DIRECT3D8_API: case GFX_CTX_DIRECT3D8_API:
{
#ifdef HAVE_D3D8 #ifdef HAVE_D3D8
LPDIRECT3DTEXTURE8 tex = (LPDIRECT3DTEXTURE8)_tex;
if (!tex)
return false;
#ifdef __cplusplus #ifdef __cplusplus
if (FAILED(tex->LockRect(level, lock_rect, rect, flags))) if (FAILED(tex->LockRect(level, lock_rect, rect, flags)))
return false; return false;
#else #else
if (IDirect3DTexture8_LockRect(tex, level, lock_rect, rect, flags) != D3D_OK) if (IDirect3DTexture8_LockRect(tex, level, lock_rect, rect, flags) != D3D_OK)
return false; return false;
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_NONE: case GFX_CTX_NONE:
default: default:
@ -1693,27 +1718,37 @@ bool d3d_lock_rectangle(LPDIRECT3DTEXTURE tex,
return true; return true;
} }
void d3d_unlock_rectangle(LPDIRECT3DTEXTURE tex) void d3d_unlock_rectangle(void *_tex)
{ {
switch (d3d_common_api) switch (d3d_common_api)
{ {
case GFX_CTX_DIRECT3D9_API: case GFX_CTX_DIRECT3D9_API:
{
#ifdef HAVE_D3D9 #ifdef HAVE_D3D9
LPDIRECT3DTEXTURE9 tex = (LPDIRECT3DTEXTURE9)_tex;
if (!tex)
return;
#ifdef __cplusplus #ifdef __cplusplus
tex->UnlockRect(0); tex->UnlockRect(0);
#else #else
IDirect3DTexture9_UnlockRect(tex, 0); IDirect3DTexture9_UnlockRect(tex, 0);
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_DIRECT3D8_API: case GFX_CTX_DIRECT3D8_API:
{
#ifdef HAVE_D3D8 #ifdef HAVE_D3D8
LPDIRECT3DTEXTURE8 tex = (LPDIRECT3DTEXTURE8)_tex;
if (!tex)
return;
#ifdef __cplusplus #ifdef __cplusplus
tex->UnlockRect(0); tex->UnlockRect(0);
#else #else
IDirect3DTexture8_UnlockRect(tex, 0); IDirect3DTexture8_UnlockRect(tex, 0);
#endif #endif
#endif #endif
}
break; break;
case GFX_CTX_NONE: case GFX_CTX_NONE:
default: default:
@ -1721,7 +1756,7 @@ void d3d_unlock_rectangle(LPDIRECT3DTEXTURE tex)
} }
} }
void d3d_lock_rectangle_clear(LPDIRECT3DTEXTURE tex, void d3d_lock_rectangle_clear(void *tex,
unsigned level, D3DLOCKED_RECT *lock_rect, RECT *rect, unsigned level, D3DLOCKED_RECT *lock_rect, RECT *rect,
unsigned rectangle_height, unsigned flags) unsigned rectangle_height, unsigned flags)
{ {
@ -1773,18 +1808,14 @@ void d3d_set_viewports(void *_dev, D3DVIEWPORT *vp)
void d3d_set_texture(void *_dev, unsigned sampler, void d3d_set_texture(void *_dev, unsigned sampler,
void *tex_data) void *tex_data)
{ {
LPDIRECT3DTEXTURE tex = (LPDIRECT3DTEXTURE)tex_data;
if (!tex)
return;
switch (d3d_common_api) switch (d3d_common_api)
{ {
case GFX_CTX_DIRECT3D9_API: case GFX_CTX_DIRECT3D9_API:
{ {
#ifdef HAVE_D3D9 #ifdef HAVE_D3D9
LPDIRECT3DDEVICE9 dev = (LPDIRECT3DDEVICE9)_dev; LPDIRECT3DTEXTURE9 tex = (LPDIRECT3DTEXTURE9)tex_data;
if (!dev) LPDIRECT3DDEVICE9 dev = (LPDIRECT3DDEVICE9)_dev;
if (!dev || !tex)
return; return;
#ifdef __cplusplus #ifdef __cplusplus
dev->SetTexture(sampler, tex); dev->SetTexture(sampler, tex);
@ -1798,8 +1829,9 @@ void d3d_set_texture(void *_dev, unsigned sampler,
case GFX_CTX_DIRECT3D8_API: case GFX_CTX_DIRECT3D8_API:
{ {
#ifdef HAVE_D3D8 #ifdef HAVE_D3D8
LPDIRECT3DDEVICE8 dev = (LPDIRECT3DDEVICE8)_dev; LPDIRECT3DTEXTURE8 tex = (LPDIRECT3DTEXTURE8)tex_data;
if (!dev) LPDIRECT3DDEVICE8 dev = (LPDIRECT3DDEVICE8)_dev;
if (!dev || !tex)
return; return;
#ifdef __cplusplus #ifdef __cplusplus
dev->SetTexture(sampler, tex); dev->SetTexture(sampler, tex);
@ -2057,7 +2089,7 @@ bool d3d_set_vertex_shader_constantf(void *_dev,
} }
void d3d_texture_blit(unsigned pixel_size, void d3d_texture_blit(unsigned pixel_size,
LPDIRECT3DTEXTURE tex, void *tex,
D3DLOCKED_RECT *lr, const void *frame, D3DLOCKED_RECT *lr, const void *frame,
unsigned width, unsigned height, unsigned pitch) unsigned width, unsigned height, unsigned pitch)
{ {

View File

@ -26,7 +26,7 @@ RETRO_BEGIN_DECLS
typedef struct d3d_texture typedef struct d3d_texture
{ {
LPDIRECT3DTEXTURE data; void *data;
D3DPOOL pool; D3DPOOL pool;
} d3d_texture_t; } d3d_texture_t;
@ -41,13 +41,13 @@ void d3d_vertex_buffer_unlock(void *data);
void d3d_vertex_buffer_free(void *vertex_data, void *vertex_declaration); void d3d_vertex_buffer_free(void *vertex_data, void *vertex_declaration);
bool d3d_texture_get_level_desc(LPDIRECT3DTEXTURE tex, bool d3d_texture_get_level_desc(void *tex,
unsigned idx, void *_ppsurface_level); unsigned idx, void *_ppsurface_level);
bool d3d_texture_get_surface_level(LPDIRECT3DTEXTURE tex, bool d3d_texture_get_surface_level(void *tex,
unsigned idx, void **_ppsurface_level); unsigned idx, void **_ppsurface_level);
LPDIRECT3DTEXTURE d3d_texture_new(void *dev, void *d3d_texture_new(void *dev,
const char *path, unsigned width, unsigned height, const char *path, unsigned width, unsigned height,
unsigned miplevels, unsigned usage, D3DFORMAT format, unsigned miplevels, unsigned usage, D3DFORMAT format,
D3DPOOL pool, unsigned filter, unsigned mipfilter, D3DPOOL pool, unsigned filter, unsigned mipfilter,
@ -58,7 +58,7 @@ void d3d_set_stream_source(void *dev, unsigned stream_no,
void *stream_vertbuf, unsigned offset_bytes, void *stream_vertbuf, unsigned offset_bytes,
unsigned stride); unsigned stride);
void d3d_texture_free(LPDIRECT3DTEXTURE tex); void d3d_texture_free(void *tex);
void d3d_set_transform(void *dev, void d3d_set_transform(void *dev,
D3DTRANSFORMSTATETYPE state, CONST D3DMATRIX *matrix); D3DTRANSFORMSTATETYPE state, CONST D3DMATRIX *matrix);
@ -89,15 +89,15 @@ void d3d_clear(void *dev,
unsigned count, const D3DRECT *rects, unsigned flags, unsigned count, const D3DRECT *rects, unsigned flags,
D3DCOLOR color, float z, unsigned stencil); D3DCOLOR color, float z, unsigned stencil);
bool d3d_lock_rectangle(LPDIRECT3DTEXTURE tex, bool d3d_lock_rectangle(void *tex,
unsigned level, D3DLOCKED_RECT *lock_rect, RECT *rect, unsigned level, D3DLOCKED_RECT *lock_rect, RECT *rect,
unsigned rectangle_height, unsigned flags); unsigned rectangle_height, unsigned flags);
void d3d_lock_rectangle_clear(LPDIRECT3DTEXTURE tex, void d3d_lock_rectangle_clear(void *tex,
unsigned level, D3DLOCKED_RECT *lock_rect, RECT *rect, unsigned level, D3DLOCKED_RECT *lock_rect, RECT *rect,
unsigned rectangle_height, unsigned flags); unsigned rectangle_height, unsigned flags);
void d3d_unlock_rectangle(LPDIRECT3DTEXTURE tex); void d3d_unlock_rectangle(void *tex);
void d3d_set_texture(void *dev, unsigned sampler, void d3d_set_texture(void *dev, unsigned sampler,
void *tex_data); void *tex_data);
@ -121,7 +121,7 @@ bool d3d_set_vertex_shader_constantf(void *dev,
UINT start_register,const float* constant_data, unsigned vector4f_count); UINT start_register,const float* constant_data, unsigned vector4f_count);
void d3d_texture_blit(unsigned pixel_size, void d3d_texture_blit(unsigned pixel_size,
LPDIRECT3DTEXTURE tex, void *tex,
D3DLOCKED_RECT *lr, const void *frame, D3DLOCKED_RECT *lr, const void *frame,
unsigned width, unsigned height, unsigned pitch); unsigned width, unsigned height, unsigned pitch);

View File

@ -52,7 +52,7 @@ typedef struct
float tex_coords[4]; float tex_coords[4];
float vert_coords[4]; float vert_coords[4];
float alpha_mod; float alpha_mod;
LPDIRECT3DTEXTURE tex; void *tex;
void *vert_buf; void *vert_buf;
} overlay_t; } overlay_t;

View File

@ -62,7 +62,7 @@ typedef struct d3d8_renderchain
unsigned pixel_size; unsigned pixel_size;
LPDIRECT3DDEVICE8 dev; LPDIRECT3DDEVICE8 dev;
const video_info_t *video_info; const video_info_t *video_info;
LPDIRECT3DTEXTURE tex; LPDIRECT3DTEXTURE8 tex;
LPDIRECT3DVERTEXBUFFER vertex_buf; LPDIRECT3DVERTEXBUFFER vertex_buf;
unsigned last_width; unsigned last_width;
unsigned last_height; unsigned last_height;
@ -1643,8 +1643,8 @@ static void d3d8_video_texture_load_d3d(d3d_video_t *d3d,
uintptr_t *id) uintptr_t *id)
{ {
D3DLOCKED_RECT d3dlr; D3DLOCKED_RECT d3dlr;
unsigned usage = 0; unsigned usage = 0;
LPDIRECT3DTEXTURE tex = d3d_texture_new(d3d->dev, NULL, LPDIRECT3DTEXTURE8 tex = d3d_texture_new(d3d->dev, NULL,
ti->width, ti->height, 0, ti->width, ti->height, 0,
usage, d3d_get_argb8888_format(), usage, d3d_get_argb8888_format(),
D3DPOOL_MANAGED, 0, 0, 0, D3DPOOL_MANAGED, 0, 0, 0,
@ -1698,11 +1698,11 @@ static uintptr_t d3d8_load_texture(void *video_data, void *data,
static void d3d8_unload_texture(void *data, uintptr_t id) static void d3d8_unload_texture(void *data, uintptr_t id)
{ {
LPDIRECT3DTEXTURE texid; LPDIRECT3DTEXTURE8 texid;
if (!id) if (!id)
return; return;
texid = (LPDIRECT3DTEXTURE)id; texid = (LPDIRECT3DTEXTURE8)id;
d3d_texture_free(texid); d3d_texture_free(texid);
} }

View File

@ -1639,9 +1639,9 @@ static void d3d9_video_texture_load_d3d(d3d_video_t *d3d,
uintptr_t *id) uintptr_t *id)
{ {
D3DLOCKED_RECT d3dlr; D3DLOCKED_RECT d3dlr;
LPDIRECT3DTEXTURE tex = NULL; LPDIRECT3DTEXTURE9 tex = NULL;
unsigned usage = 0; unsigned usage = 0;
bool want_mipmap = false; bool want_mipmap = false;
if((filter_type == TEXTURE_FILTER_MIPMAP_LINEAR) || if((filter_type == TEXTURE_FILTER_MIPMAP_LINEAR) ||
(filter_type == TEXTURE_FILTER_MIPMAP_NEAREST)) (filter_type == TEXTURE_FILTER_MIPMAP_NEAREST))
@ -1721,11 +1721,11 @@ static uintptr_t d3d9_load_texture(void *video_data, void *data,
static void d3d9_unload_texture(void *data, uintptr_t id) static void d3d9_unload_texture(void *data, uintptr_t id)
{ {
LPDIRECT3DTEXTURE texid; LPDIRECT3DTEXTURE9 texid;
if (!id) if (!id)
return; return;
texid = (LPDIRECT3DTEXTURE)id; texid = (LPDIRECT3DTEXTURE9)id;
d3d_texture_free(texid); d3d_texture_free(texid);
} }

View File

@ -58,7 +58,7 @@
struct lut_info struct lut_info
{ {
LPDIRECT3DTEXTURE tex; LPDIRECT3DTEXTURE9 tex;
char id[64]; char id[64];
bool smooth; bool smooth;
}; };
@ -75,7 +75,7 @@ struct Pass
{ {
struct LinkInfo info; struct LinkInfo info;
D3DPOOL pool; D3DPOOL pool;
LPDIRECT3DTEXTURE tex; LPDIRECT3DTEXTURE9 tex;
LPDIRECT3DVERTEXBUFFER vertex_buf; LPDIRECT3DVERTEXBUFFER vertex_buf;
CGprogram vPrg, fPrg; CGprogram vPrg, fPrg;
unsigned last_width, last_height; unsigned last_width, last_height;
@ -101,7 +101,7 @@ typedef struct cg_renderchain
unsigned frame_count; unsigned frame_count;
struct struct
{ {
LPDIRECT3DTEXTURE tex[TEXTURES]; LPDIRECT3DTEXTURE9 tex[TEXTURES];
LPDIRECT3DVERTEXBUFFER vertex_buf[TEXTURES]; LPDIRECT3DVERTEXBUFFER vertex_buf[TEXTURES];
unsigned ptr; unsigned ptr;
unsigned last_width[TEXTURES]; unsigned last_width[TEXTURES];
@ -516,11 +516,11 @@ static void d3d9_cg_renderchain_bind_prev(void *data, const void *pass_data)
param = cgGetNamedParameter(pass->fPrg, attr_texture); param = cgGetNamedParameter(pass->fPrg, attr_texture);
if (param) if (param)
{ {
LPDIRECT3DTEXTURE tex; LPDIRECT3DTEXTURE9 tex;
index = cgGetParameterResourceIndex(param); index = cgGetParameterResourceIndex(param);
tex = (LPDIRECT3DTEXTURE) tex = (LPDIRECT3DTEXTURE9)
chain->prev.tex[(chain->prev.ptr - (i + 1)) & TEXTURESMASK]; chain->prev.tex[(chain->prev.ptr - (i + 1)) & TEXTURESMASK];
d3d_set_texture(chain->dev, index, tex); d3d_set_texture(chain->dev, index, tex);
@ -1126,7 +1126,7 @@ static bool d3d9_cg_renderchain_add_lut(void *data,
{ {
struct lut_info info; struct lut_info info;
cg_renderchain_t *chain = (cg_renderchain_t*)data; cg_renderchain_t *chain = (cg_renderchain_t*)data;
LPDIRECT3DTEXTURE lut = d3d_texture_new( LPDIRECT3DTEXTURE9 lut = d3d_texture_new(
chain->dev, chain->dev,
path, path,
D3D_DEFAULT_NONPOW2, D3D_DEFAULT_NONPOW2,