mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
d3d9: implement scissor test
This commit is contained in:
parent
1546ba05d4
commit
8b6676e17f
@ -457,6 +457,12 @@ static INLINE void d3d9_set_viewports(LPDIRECT3DDEVICE9 dev,
|
||||
IDirect3DDevice9_SetViewport(dev, (D3DVIEWPORT9*)vp);
|
||||
}
|
||||
|
||||
static INLINE void d3d9_set_scissor_rect(
|
||||
LPDIRECT3DDEVICE9 dev, RECT *rect)
|
||||
{
|
||||
IDirect3DDevice9_SetScissorRect(dev, rect);
|
||||
}
|
||||
|
||||
static INLINE void d3d9_set_render_state(
|
||||
LPDIRECT3DDEVICE9 dev, D3DRENDERSTATETYPE state, DWORD value)
|
||||
{
|
||||
|
@ -1033,6 +1033,7 @@ static bool d3d9_initialize(d3d9_video_t *d3d, const video_info_t *info)
|
||||
d3d_matrix_transpose(&d3d->mvp, &d3d->mvp_transposed);
|
||||
|
||||
d3d9_set_render_state(d3d->dev, D3DRS_CULLMODE, D3DCULL_NONE);
|
||||
d3d9_set_render_state(d3d->dev, D3DRS_SCISSORTESTENABLE, TRUE);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -309,6 +309,40 @@ static bool menu_display_d3d9_font_init_first(
|
||||
return true;
|
||||
}
|
||||
|
||||
void menu_display_d3d9_scissor_begin(video_frame_info_t *video_info, int x, int y, unsigned width, unsigned height)
|
||||
{
|
||||
RECT rect = {0};
|
||||
d3d9_video_t *d3d9 = video_info ?
|
||||
(d3d9_video_t*)video_info->userdata : NULL;
|
||||
|
||||
rect.left = x;
|
||||
rect.top = y;
|
||||
rect.right = width + x;
|
||||
rect.bottom = height + y;
|
||||
|
||||
if (!d3d9 || !width || !height)
|
||||
return;
|
||||
|
||||
d3d9_set_scissor_rect(d3d9->dev, &rect);
|
||||
}
|
||||
|
||||
void menu_display_d3d9_scissor_end(video_frame_info_t *video_info)
|
||||
{
|
||||
RECT rect = {0};
|
||||
d3d9_video_t *d3d9 = video_info ?
|
||||
(d3d9_video_t*)video_info->userdata : NULL;
|
||||
|
||||
if (!d3d9)
|
||||
return;
|
||||
|
||||
rect.left = d3d9->vp.x;
|
||||
rect.top = d3d9->vp.y;
|
||||
rect.right = d3d9->vp.width;
|
||||
rect.bottom = d3d9->vp.height;
|
||||
|
||||
d3d9_set_scissor_rect(d3d9->dev, &rect);
|
||||
}
|
||||
|
||||
menu_display_ctx_driver_t menu_display_ctx_d3d9 = {
|
||||
menu_display_d3d9_draw,
|
||||
menu_display_d3d9_draw_pipeline,
|
||||
@ -324,6 +358,6 @@ menu_display_ctx_driver_t menu_display_ctx_d3d9 = {
|
||||
MENU_VIDEO_DRIVER_DIRECT3D9,
|
||||
"d3d9",
|
||||
false,
|
||||
NULL,
|
||||
NULL
|
||||
menu_display_d3d9_scissor_begin,
|
||||
menu_display_d3d9_scissor_end
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user