Get rid of d3d_video_viewport

This commit is contained in:
twinaphex 2018-05-13 18:24:19 +02:00
parent 53446cc0c8
commit 46f23f9fbd
7 changed files with 41 additions and 52 deletions

View File

@ -56,7 +56,7 @@ typedef struct d3d8_video
video_info_t video_info; video_info_t video_info;
WNDCLASSEX windowClass; WNDCLASSEX windowClass;
LPDIRECT3DDEVICE8 dev; LPDIRECT3DDEVICE8 dev;
d3d_video_viewport_t final_viewport; D3DVIEWPORT8 final_viewport;
char *shader_path; char *shader_path;

View File

@ -37,9 +37,9 @@ typedef struct d3d9_renderchain_driver
void *(*chain_new)(void); void *(*chain_new)(void);
bool (*init)(d3d9_video_t *d3d, bool (*init)(d3d9_video_t *d3d,
const video_info_t *video_info, const video_info_t *video_info,
void *dev_data, LPDIRECT3DDEVICE9 dev,
const void *final_viewport_data, const D3DVIEWPORT9 *final_viewport,
const void *info_data, const struct LinkInfo *info,
bool rgb32); bool rgb32);
void (*set_final_viewport)(d3d9_video_t *d3d, void (*set_final_viewport)(d3d9_video_t *d3d,
void *renderchain_data, const void *viewport_data); void *renderchain_data, const void *viewport_data);
@ -87,7 +87,7 @@ typedef struct d3d9_video
video_info_t video_info; video_info_t video_info;
WNDCLASSEX windowClass; WNDCLASSEX windowClass;
LPDIRECT3DDEVICE9 dev; LPDIRECT3DDEVICE9 dev;
d3d_video_viewport_t final_viewport; D3DVIEWPORT9 final_viewport;
char *shader_path; char *shader_path;

View File

@ -52,15 +52,5 @@ typedef struct Vertex
float u, v; float u, v;
} Vertex; } Vertex;
typedef struct d3d_video_viewport
{
DWORD x;
DWORD y;
DWORD width;
DWORD height;
float min_z;
float max_z;
} d3d_video_viewport_t;
#endif #endif

View File

@ -261,10 +261,10 @@ static void d3d8_renderchain_viewport_info(void *data,
video_driver_get_size(&width, &height); video_driver_get_size(&width, &height);
vp->x = d3d->final_viewport.x; vp->x = d3d->final_viewport.X;
vp->y = d3d->final_viewport.y; vp->y = d3d->final_viewport.Y;
vp->width = d3d->final_viewport.width; vp->width = d3d->final_viewport.Width;
vp->height = d3d->final_viewport.height; vp->height = d3d->final_viewport.Height;
vp->full_width = width; vp->full_width = width;
vp->full_height = height; vp->full_height = height;
@ -285,7 +285,7 @@ static void d3d8_renderchain_render_pass(
d3d8_set_sampler_minfilter(d3dr, pass_index, video_smooth ? d3d8_set_sampler_minfilter(d3dr, pass_index, video_smooth ?
D3DTEXF_LINEAR : D3DTEXF_POINT); D3DTEXF_LINEAR : D3DTEXF_POINT);
d3d8_set_viewports(chain->dev, (D3DVIEWPORT8*)&d3d->final_viewport); d3d8_set_viewports(chain->dev, &d3d->final_viewport);
d3d8_set_vertex_shader(d3dr, d3d8_set_vertex_shader(d3dr,
D3DFVF_XYZ | D3DFVF_TEX1 | D3DFVF_DIFFUSE, D3DFVF_XYZ | D3DFVF_TEX1 | D3DFVF_DIFFUSE,
NULL); NULL);
@ -892,12 +892,12 @@ static void d3d8_set_viewport(void *data,
if (y < 0) if (y < 0)
y = 0; y = 0;
d3d->final_viewport.x = x; d3d->final_viewport.X = x;
d3d->final_viewport.y = y; d3d->final_viewport.Y = y;
d3d->final_viewport.width = width; d3d->final_viewport.Width = width;
d3d->final_viewport.height= height; d3d->final_viewport.Height = height;
d3d->final_viewport.min_z = 0.0f; d3d->final_viewport.MinZ = 0.0f;
d3d->final_viewport.max_z = 0.0f; d3d->final_viewport.MaxZ = 0.0f;
d3d_matrix_ortho_off_center_lh(&ortho, 0, 1, 0, 1, 0.0f, 1.0f); d3d_matrix_ortho_off_center_lh(&ortho, 0, 1, 0, 1, 0.0f, 1.0f);
d3d_matrix_identity(&rot); d3d_matrix_identity(&rot);

View File

@ -447,10 +447,10 @@ static void d3d9_viewport_info(void *data, struct video_viewport *vp)
video_driver_get_size(&width, &height); video_driver_get_size(&width, &height);
vp->x = d3d->final_viewport.x; vp->x = d3d->final_viewport.X;
vp->y = d3d->final_viewport.y; vp->y = d3d->final_viewport.Y;
vp->width = d3d->final_viewport.width; vp->width = d3d->final_viewport.Width;
vp->height = d3d->final_viewport.height; vp->height = d3d->final_viewport.Height;
vp->full_width = width; vp->full_width = width;
vp->full_height = height; vp->full_height = height;
@ -894,12 +894,12 @@ static void d3d9_set_viewport(void *data,
if (y < 0) if (y < 0)
y = 0; y = 0;
d3d->final_viewport.x = x; d3d->final_viewport.X = x;
d3d->final_viewport.y = y; d3d->final_viewport.Y = y;
d3d->final_viewport.width = width; d3d->final_viewport.Width = width;
d3d->final_viewport.height = height; d3d->final_viewport.Height = height;
d3d->final_viewport.min_z = 0.0f; d3d->final_viewport.MinZ = 0.0f;
d3d->final_viewport.max_z = 1.0f; d3d->final_viewport.MaxZ = 1.0f;
if (d3d->renderchain_driver && d3d->renderchain_driver->set_font_rect) if (d3d->renderchain_driver && d3d->renderchain_driver->set_font_rect)
d3d->renderchain_driver->set_font_rect(d3d, NULL); d3d->renderchain_driver->set_font_rect(d3d, NULL);

View File

@ -860,11 +860,11 @@ static bool d3d9_cg_renderchain_create_first_pass(
static bool d3d9_cg_renderchain_init( static bool d3d9_cg_renderchain_init(
d3d9_video_t *d3d, d3d9_video_t *d3d,
const video_info_t *video_info, const video_info_t *video_info,
void *dev_, LPDIRECT3DDEVICE9 dev,
const void *final_viewport_, const D3DVIEWPORT9 *final_viewport,
const void *info_data, bool rgb32) const struct LinkInfo *info,
bool rgb32)
{ {
const struct LinkInfo *info = (const struct LinkInfo*)info_data;
cg_renderchain_t *chain = (cg_renderchain_t*)d3d->renderchain_data; cg_renderchain_t *chain = (cg_renderchain_t*)d3d->renderchain_data;
unsigned fmt = (rgb32) ? RETRO_PIXEL_FORMAT_XRGB8888 : RETRO_PIXEL_FORMAT_RGB565; unsigned fmt = (rgb32) ? RETRO_PIXEL_FORMAT_XRGB8888 : RETRO_PIXEL_FORMAT_RGB565;
@ -876,10 +876,10 @@ static bool d3d9_cg_renderchain_init(
return false; return false;
} }
chain->dev = (void*)dev_; chain->dev = dev;
chain->video_info = video_info; chain->video_info = video_info;
chain->state_tracker = NULL; chain->state_tracker = NULL;
chain->final_viewport = (D3DVIEWPORT9*)final_viewport_; chain->final_viewport = (D3DVIEWPORT9*)final_viewport;
chain->frame_count = 0; chain->frame_count = 0;
chain->pixel_size = (fmt == RETRO_PIXEL_FORMAT_RGB565) ? 2 : 4; chain->pixel_size = (fmt == RETRO_PIXEL_FORMAT_RGB565) ? 2 : 4;
@ -1599,13 +1599,13 @@ static bool d3d9_cg_renderchain_read_viewport(
unsigned pitchpix = rect.Pitch / 4; unsigned pitchpix = rect.Pitch / 4;
const uint32_t *pixels = (const uint32_t*)rect.pBits; const uint32_t *pixels = (const uint32_t*)rect.pBits;
pixels += d3d->final_viewport.x; pixels += d3d->final_viewport.X;
pixels += (d3d->final_viewport.height - 1) * pitchpix; pixels += (d3d->final_viewport.Height - 1) * pitchpix;
pixels -= d3d->final_viewport.y * pitchpix; pixels -= d3d->final_viewport.Y * pitchpix;
for (y = 0; y < d3d->final_viewport.height; y++, pixels -= pitchpix) for (y = 0; y < d3d->final_viewport.Height; y++, pixels -= pitchpix)
{ {
for (x = 0; x < d3d->final_viewport.width; x++) for (x = 0; x < d3d->final_viewport.Width; x++)
{ {
*buffer++ = (pixels[x] >> 0) & 0xff; *buffer++ = (pixels[x] >> 0) & 0xff;
*buffer++ = (pixels[x] >> 8) & 0xff; *buffer++ = (pixels[x] >> 8) & 0xff;

View File

@ -252,14 +252,13 @@ static bool hlsl_d3d9_renderchain_init_shader(d3d9_video_t *d3d,
static bool hlsl_d3d9_renderchain_init( static bool hlsl_d3d9_renderchain_init(
d3d9_video_t *d3d, d3d9_video_t *d3d,
const video_info_t *video_info, const video_info_t *video_info,
void *dev_data, LPDIRECT3DDEVICE9 dev,
const void *final_viewport_data, const D3DVIEWPORT9 *final_viewport,
const void *info_data, const struct LinkInfo *info,
bool rgb32 bool rgb32
) )
{ {
unsigned width, height; unsigned width, height;
const struct LinkInfo *info = (const struct LinkInfo*)info_data;
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*) hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)
d3d->renderchain_data; d3d->renderchain_data;
unsigned fmt = (rgb32) unsigned fmt = (rgb32)
@ -271,7 +270,7 @@ static bool hlsl_d3d9_renderchain_init(
video_driver_get_size(&width, &height); video_driver_get_size(&width, &height);
chain->dev = (LPDIRECT3DDEVICE9)dev_data; chain->dev = dev;
chain->pixel_size = (fmt == RETRO_PIXEL_FORMAT_RGB565) ? 2 : 4; chain->pixel_size = (fmt == RETRO_PIXEL_FORMAT_RGB565) ? 2 : 4;
chain->tex_w = info->tex_w; chain->tex_w = info->tex_w;
chain->tex_h = info->tex_h; chain->tex_h = info->tex_h;