mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
(D3D10) Turn boolean variables into flags
This commit is contained in:
parent
56ad3fa091
commit
7aa8c6bb11
@ -126,6 +126,21 @@ typedef struct d3d10_shader_t
|
||||
D3D10InputLayout layout;
|
||||
} d3d10_shader_t;
|
||||
|
||||
enum d3d10_video_flags
|
||||
{
|
||||
D3D10_ST_FLAG_VSYNC = (1 << 0),
|
||||
D3D10_ST_FLAG_RESIZE_CHAIN = (1 << 1),
|
||||
D3D10_ST_FLAG_KEEP_ASPECT = (1 << 2),
|
||||
D3D10_ST_FLAG_RESIZE_VIEWPORT = (1 << 3),
|
||||
D3D10_ST_FLAG_RESIZE_RTS = (1 << 4), /* RT = Render Target */
|
||||
D3D10_ST_FLAG_INIT_HISTORY = (1 << 5),
|
||||
D3D10_ST_FLAG_SPRITES_ENABLE = (1 << 6),
|
||||
D3D10_ST_FLAG_OVERLAYS_ENABLE = (1 << 7),
|
||||
D3D10_ST_FLAG_OVERLAYS_FULLSCREEN = (1 << 8),
|
||||
D3D10_ST_FLAG_MENU_ENABLE = (1 << 9),
|
||||
D3D10_ST_FLAG_MENU_FULLSCREEN = (1 << 10)
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned cur_mon_id;
|
||||
@ -146,12 +161,6 @@ typedef struct
|
||||
DXGI_FORMAT format;
|
||||
float clearcolor[4];
|
||||
unsigned swap_interval;
|
||||
bool vsync;
|
||||
bool resize_chain;
|
||||
bool keep_aspect;
|
||||
bool resize_viewport;
|
||||
bool resize_render_targets;
|
||||
bool init_history;
|
||||
d3d10_shader_t shaders[GFX_MAX_SHADERS];
|
||||
#ifdef __WINRT__
|
||||
DXGIFactory2 factory;
|
||||
@ -167,7 +176,6 @@ typedef struct
|
||||
D3D10Buffer vbo;
|
||||
int offset;
|
||||
int capacity;
|
||||
bool enabled;
|
||||
} sprites;
|
||||
|
||||
#ifdef HAVE_OVERLAY
|
||||
@ -175,8 +183,6 @@ typedef struct
|
||||
{
|
||||
D3D10Buffer vbo;
|
||||
d3d10_texture_t* textures;
|
||||
bool enabled;
|
||||
bool fullscreen;
|
||||
int count;
|
||||
} overlays;
|
||||
#endif
|
||||
@ -185,8 +191,6 @@ typedef struct
|
||||
{
|
||||
d3d10_texture_t texture;
|
||||
D3D10Buffer vbo;
|
||||
bool enabled;
|
||||
bool fullscreen;
|
||||
} menu;
|
||||
struct
|
||||
{
|
||||
@ -215,6 +219,7 @@ typedef struct
|
||||
struct string_list *gpu_list;
|
||||
IDXGIAdapter1 *adapters[D3D10_MAX_GPU_COUNT];
|
||||
IDXGIAdapter1 *current_adapter;
|
||||
uint16_t flags;
|
||||
} d3d10_video_t;
|
||||
|
||||
#if !defined(__cplusplus) || defined(CINTERFACE)
|
||||
|
@ -220,7 +220,10 @@ static void d3d10_overlay_enable(void* data, bool state)
|
||||
if (!d3d10)
|
||||
return;
|
||||
|
||||
d3d10->overlays.enabled = state;
|
||||
if (state)
|
||||
d3d10->flags |= D3D10_ST_FLAG_OVERLAYS_ENABLE;
|
||||
else
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_OVERLAYS_ENABLE;
|
||||
win32_show_cursor(d3d10, state);
|
||||
}
|
||||
|
||||
@ -231,7 +234,10 @@ static void d3d10_overlay_full_screen(void* data, bool enable)
|
||||
if (!d3d10)
|
||||
return;
|
||||
|
||||
d3d10->overlays.fullscreen = enable;
|
||||
if (enable)
|
||||
d3d10->flags |= D3D10_ST_FLAG_OVERLAYS_FULLSCREEN;
|
||||
else
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_OVERLAYS_FULLSCREEN;
|
||||
}
|
||||
|
||||
static void d3d10_get_overlay_interface(void* data, const video_overlay_interface_t** iface)
|
||||
@ -248,7 +254,7 @@ static void d3d10_render_overlay(d3d10_video_t *d3d10)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
if (d3d10->overlays.fullscreen)
|
||||
if (d3d10->flags & D3D10_ST_FLAG_OVERLAYS_FULLSCREEN)
|
||||
d3d10->device->lpVtbl->RSSetViewports(d3d10->device, 1, &d3d10->viewport);
|
||||
else
|
||||
d3d10->device->lpVtbl->RSSetViewports(d3d10->device, 1, &d3d10->frame.viewport);
|
||||
@ -317,7 +323,8 @@ static void d3d10_gfx_set_rotation(void* data, unsigned rotation)
|
||||
|
||||
static void d3d10_update_viewport(d3d10_video_t *d3d10, bool force_full)
|
||||
{
|
||||
video_driver_update_viewport(&d3d10->vp, force_full, d3d10->keep_aspect);
|
||||
video_driver_update_viewport(&d3d10->vp, force_full,
|
||||
d3d10->flags & D3D10_ST_FLAG_KEEP_ASPECT);
|
||||
|
||||
d3d10->frame.viewport.TopLeftX = d3d10->vp.x;
|
||||
d3d10->frame.viewport.TopLeftY = d3d10->vp.y;
|
||||
@ -328,14 +335,13 @@ static void d3d10_update_viewport(d3d10_video_t *d3d10, bool force_full)
|
||||
|
||||
if (d3d10->shader_preset && (d3d10->frame.output_size.x != d3d10->vp.width ||
|
||||
d3d10->frame.output_size.y != d3d10->vp.height))
|
||||
d3d10->resize_render_targets = true;
|
||||
d3d10->flags |= D3D10_ST_FLAG_RESIZE_RTS;
|
||||
|
||||
d3d10->frame.output_size.x = d3d10->vp.width;
|
||||
d3d10->frame.output_size.y = d3d10->vp.height;
|
||||
d3d10->frame.output_size.z = 1.0f / d3d10->vp.width;
|
||||
d3d10->frame.output_size.w = 1.0f / d3d10->vp.height;
|
||||
|
||||
d3d10->resize_viewport = false;
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_RESIZE_VIEWPORT;
|
||||
}
|
||||
|
||||
static void d3d10_free_shader_preset(d3d10_video_t* d3d10)
|
||||
@ -382,8 +388,8 @@ static void d3d10_free_shader_preset(d3d10_video_t* d3d10)
|
||||
|
||||
free(d3d10->shader_preset);
|
||||
d3d10->shader_preset = NULL;
|
||||
d3d10->init_history = false;
|
||||
d3d10->resize_render_targets = false;
|
||||
d3d10->flags &= ~(D3D10_ST_FLAG_INIT_HISTORY
|
||||
| D3D10_ST_FLAG_RESIZE_RTS);
|
||||
}
|
||||
|
||||
static bool d3d10_gfx_set_shader(void* data, enum rarch_shader_type type, const char* path)
|
||||
@ -540,8 +546,8 @@ static bool d3d10_gfx_set_shader(void* data, enum rarch_shader_type type, const
|
||||
image_texture_free(&image);
|
||||
}
|
||||
|
||||
d3d10->resize_render_targets = true;
|
||||
d3d10->init_history = true;
|
||||
d3d10->flags |= (D3D10_ST_FLAG_INIT_HISTORY
|
||||
| D3D10_ST_FLAG_RESIZE_RTS);
|
||||
|
||||
return true;
|
||||
|
||||
@ -750,9 +756,15 @@ static void *d3d10_gfx_init(const video_info_t* video,
|
||||
video_driver_set_size(d3d10->vp.full_width, d3d10->vp.full_height);
|
||||
d3d10->viewport.Width = d3d10->vp.full_width;
|
||||
d3d10->viewport.Height = d3d10->vp.full_height;
|
||||
d3d10->resize_viewport = true;
|
||||
d3d10->keep_aspect = video->force_aspect;
|
||||
d3d10->vsync = video->vsync;
|
||||
d3d10->flags |= D3D10_ST_FLAG_RESIZE_VIEWPORT;
|
||||
if (video->force_aspect)
|
||||
d3d10->flags |= D3D10_ST_FLAG_KEEP_ASPECT;
|
||||
else
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_KEEP_ASPECT;
|
||||
if (video->vsync)
|
||||
d3d10->flags |= D3D10_ST_FLAG_VSYNC;
|
||||
else
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_VSYNC;
|
||||
d3d10->format = video->rgb32 ?
|
||||
DXGI_FORMAT_B8G8R8X8_UNORM : DXGI_FORMAT_B5G6R5_UNORM;
|
||||
|
||||
@ -1134,9 +1146,10 @@ error:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void d3d10_init_history(d3d10_video_t* d3d10, unsigned width, unsigned height)
|
||||
static void d3d10_init_history(d3d10_video_t* d3d10,
|
||||
unsigned width, unsigned height)
|
||||
{
|
||||
unsigned i;
|
||||
int i;
|
||||
|
||||
/* TODO/FIXME: should we init history to max_width/max_height instead ?
|
||||
* to prevent out of memory errors happening several frames later
|
||||
@ -1153,7 +1166,7 @@ static void d3d10_init_history(d3d10_video_t* d3d10, unsigned width, unsigned he
|
||||
d3d10_init_texture(d3d10->device, &d3d10->frame.texture[i]);
|
||||
/* TODO/FIXME: clear texture ? */
|
||||
}
|
||||
d3d10->init_history = false;
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_INIT_HISTORY;
|
||||
}
|
||||
|
||||
static void d3d10_init_render_targets(d3d10_video_t* d3d10,
|
||||
@ -1250,7 +1263,7 @@ static void d3d10_init_render_targets(d3d10_video_t* d3d10,
|
||||
}
|
||||
}
|
||||
|
||||
d3d10->resize_render_targets = false;
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_RESIZE_RTS;
|
||||
}
|
||||
|
||||
static bool d3d10_gfx_frame(
|
||||
@ -1280,7 +1293,7 @@ static bool d3d10_gfx_frame(
|
||||
bool widgets_active = video_info->widgets_active;
|
||||
#endif
|
||||
|
||||
if (d3d10->resize_chain)
|
||||
if (d3d10->flags & D3D10_ST_FLAG_RESIZE_CHAIN)
|
||||
{
|
||||
D3D10Texture2D backBuffer;
|
||||
|
||||
@ -1301,8 +1314,8 @@ static bool d3d10_gfx_frame(
|
||||
d3d10->ubo_values.OutputSize.width = d3d10->viewport.Width;
|
||||
d3d10->ubo_values.OutputSize.height = d3d10->viewport.Height;
|
||||
|
||||
d3d10->resize_chain = false;
|
||||
d3d10->resize_viewport = true;
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_RESIZE_CHAIN;
|
||||
d3d10->flags |= D3D10_ST_FLAG_RESIZE_VIEWPORT;
|
||||
|
||||
video_driver_set_size(video_width, video_height);
|
||||
}
|
||||
@ -1330,13 +1343,12 @@ static bool d3d10_gfx_frame(
|
||||
{
|
||||
if (d3d10->frame.texture[0].desc.Width != width ||
|
||||
d3d10->frame.texture[0].desc.Height != height)
|
||||
d3d10->resize_render_targets = true;
|
||||
d3d10->flags |= D3D10_ST_FLAG_RESIZE_RTS;
|
||||
|
||||
if (d3d10->resize_render_targets)
|
||||
if (d3d10->flags & D3D10_ST_FLAG_RESIZE_RTS)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
/* release all render targets first to avoid memory fragmentation */
|
||||
int i;
|
||||
/* Release all render targets first to avoid memory fragmentation */
|
||||
for (i = 0; i < d3d10->shader_preset->passes; i++)
|
||||
{
|
||||
d3d10_release_texture(&d3d10->pass[i].rt);
|
||||
@ -1348,7 +1360,7 @@ static bool d3d10_gfx_frame(
|
||||
|
||||
if (d3d10->shader_preset->history_size)
|
||||
{
|
||||
if (d3d10->init_history)
|
||||
if (d3d10->flags & D3D10_ST_FLAG_INIT_HISTORY)
|
||||
d3d10_init_history(d3d10, width, height);
|
||||
else
|
||||
{
|
||||
@ -1373,7 +1385,7 @@ static bool d3d10_gfx_frame(
|
||||
d3d10_init_texture(d3d10->device, &d3d10->frame.texture[0]);
|
||||
}
|
||||
|
||||
if (d3d10->resize_render_targets)
|
||||
if (d3d10->flags & D3D10_ST_FLAG_RESIZE_RTS)
|
||||
d3d10_init_render_targets(d3d10, width, height);
|
||||
|
||||
if (frame != RETRO_HW_FRAME_BUFFER_VALID)
|
||||
@ -1523,9 +1535,10 @@ static bool d3d10_gfx_frame(
|
||||
context->lpVtbl->OMSetBlendState(context, d3d10->blend_enable, NULL,
|
||||
D3D10_DEFAULT_SAMPLE_MASK);
|
||||
|
||||
if (d3d10->menu.enabled && d3d10->menu.texture.handle)
|
||||
if ( (d3d10->flags & D3D10_ST_FLAG_MENU_ENABLE)
|
||||
&& d3d10->menu.texture.handle)
|
||||
{
|
||||
if (d3d10->menu.fullscreen)
|
||||
if (d3d10->flags & D3D10_ST_FLAG_MENU_FULLSCREEN)
|
||||
context->lpVtbl->RSSetViewports(context, 1, &d3d10->viewport);
|
||||
|
||||
d3d10_set_shader(context, &d3d10->shaders[VIDEO_SHADER_STOCK_BLEND]);
|
||||
@ -1542,16 +1555,17 @@ static bool d3d10_gfx_frame(
|
||||
context->lpVtbl->PSSetConstantBuffers(context, 0, 1, (ID3D10Buffer **
|
||||
const)&d3d10->ubo);
|
||||
|
||||
d3d10->sprites.enabled = true;
|
||||
d3d10->flags |= D3D10_ST_FLAG_SPRITES_ENABLE;
|
||||
|
||||
#ifdef HAVE_OVERLAY
|
||||
if (d3d10->overlays.enabled && overlay_behind_menu)
|
||||
if ( (d3d10->flags & D3D10_ST_FLAG_OVERLAYS_ENABLE)
|
||||
&& overlay_behind_menu)
|
||||
d3d10_render_overlay(d3d10);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
#ifndef HAVE_GFX_WIDGETS
|
||||
if (d3d10->menu.enabled)
|
||||
if (d3d10->flags & D3D10_ST_FLAG_MENU_ENABLE)
|
||||
#endif
|
||||
{
|
||||
context->lpVtbl->RSSetViewports(context, 1, &d3d10->viewport);
|
||||
@ -1560,7 +1574,7 @@ static bool d3d10_gfx_frame(
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
if (d3d10->menu.enabled)
|
||||
if (d3d10->flags & D3D10_ST_FLAG_MENU_ENABLE)
|
||||
menu_driver_frame(menu_is_alive, video_info);
|
||||
else
|
||||
#endif
|
||||
@ -1580,7 +1594,8 @@ static bool d3d10_gfx_frame(
|
||||
}
|
||||
|
||||
#ifdef HAVE_OVERLAY
|
||||
if (d3d10->overlays.enabled && !overlay_behind_menu)
|
||||
if ( (d3d10->flags & D3D10_ST_FLAG_OVERLAYS_ENABLE)
|
||||
&& !overlay_behind_menu)
|
||||
d3d10_render_overlay(d3d10);
|
||||
#endif
|
||||
|
||||
@ -1598,7 +1613,7 @@ static bool d3d10_gfx_frame(
|
||||
D3D10SetVertexBuffer(d3d10->device, 0, d3d10->sprites.vbo, sizeof(d3d10_sprite_t), 0);
|
||||
font_driver_render_msg(d3d10, msg, NULL, NULL);
|
||||
}
|
||||
d3d10->sprites.enabled = false;
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_SPRITES_ENABLE;
|
||||
|
||||
#ifndef __WINRT__
|
||||
win32_update_title();
|
||||
@ -1617,22 +1632,36 @@ static void d3d10_gfx_set_nonblock_state(void* data, bool toggle,
|
||||
if (!d3d10)
|
||||
return;
|
||||
|
||||
d3d10->vsync = !toggle;
|
||||
d3d10->swap_interval = (!toggle) ? swap_interval : 0;
|
||||
if (toggle)
|
||||
{
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_VSYNC;
|
||||
d3d10->swap_interval = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
d3d10->flags |= D3D10_ST_FLAG_VSYNC;
|
||||
d3d10->swap_interval = swap_interval;
|
||||
}
|
||||
}
|
||||
|
||||
static bool d3d10_gfx_alive(void* data)
|
||||
{
|
||||
bool quit;
|
||||
bool resize_chain = false;
|
||||
d3d10_video_t* d3d10 = (d3d10_video_t*)data;
|
||||
|
||||
win32_check_window(NULL,
|
||||
&quit, &d3d10->resize_chain, &d3d10->vp.full_width,
|
||||
&quit, &resize_chain, &d3d10->vp.full_width,
|
||||
&d3d10->vp.full_height);
|
||||
|
||||
if ( d3d10->resize_chain
|
||||
&& d3d10->vp.full_width != 0
|
||||
&& d3d10->vp.full_height != 0)
|
||||
if (resize_chain)
|
||||
d3d10->flags |= D3D10_ST_FLAG_RESIZE_CHAIN;
|
||||
else
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_RESIZE_CHAIN;
|
||||
|
||||
if ( (d3d10->flags & D3D10_ST_FLAG_RESIZE_CHAIN)
|
||||
&& (d3d10->vp.full_width != 0)
|
||||
&& (d3d10->vp.full_height != 0))
|
||||
video_driver_set_size(d3d10->vp.full_width, d3d10->vp.full_height);
|
||||
|
||||
return !quit;
|
||||
@ -1685,15 +1714,22 @@ static void d3d10_set_menu_texture_frame(
|
||||
? RARCH_FILTER_LINEAR
|
||||
: RARCH_FILTER_NEAREST][RARCH_WRAP_DEFAULT];
|
||||
}
|
||||
static void d3d10_set_menu_texture_enable(void* data, bool state, bool full_screen)
|
||||
static void d3d10_set_menu_texture_enable(
|
||||
void* data, bool state, bool fullscreen)
|
||||
{
|
||||
d3d10_video_t* d3d10 = (d3d10_video_t*)data;
|
||||
|
||||
if (!d3d10)
|
||||
return;
|
||||
|
||||
d3d10->menu.enabled = state;
|
||||
d3d10->menu.fullscreen = full_screen;
|
||||
if (state)
|
||||
d3d10->flags |= D3D10_ST_FLAG_MENU_ENABLE;
|
||||
else
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_MENU_ENABLE;
|
||||
if (fullscreen)
|
||||
d3d10->flags |= D3D10_ST_FLAG_MENU_FULLSCREEN;
|
||||
else
|
||||
d3d10->flags &= ~D3D10_ST_FLAG_MENU_FULLSCREEN;
|
||||
}
|
||||
|
||||
static void d3d10_gfx_set_aspect_ratio(void* data, unsigned aspect_ratio_idx)
|
||||
@ -1703,16 +1739,15 @@ static void d3d10_gfx_set_aspect_ratio(void* data, unsigned aspect_ratio_idx)
|
||||
if (!d3d10)
|
||||
return;
|
||||
|
||||
d3d10->keep_aspect = true;
|
||||
d3d10->resize_viewport = true;
|
||||
d3d10->flags |= D3D10_ST_FLAG_RESIZE_VIEWPORT
|
||||
| D3D10_ST_FLAG_KEEP_ASPECT;
|
||||
}
|
||||
|
||||
static void d3d10_gfx_apply_state_changes(void* data)
|
||||
{
|
||||
d3d10_video_t* d3d10 = (d3d10_video_t*)data;
|
||||
|
||||
if (d3d10)
|
||||
d3d10->resize_viewport = true;
|
||||
d3d10->flags |= D3D10_ST_FLAG_RESIZE_VIEWPORT;
|
||||
}
|
||||
|
||||
static void d3d10_gfx_set_osd_msg(
|
||||
@ -1723,7 +1758,7 @@ static void d3d10_gfx_set_osd_msg(
|
||||
|
||||
if (d3d10)
|
||||
{
|
||||
if (d3d10->sprites.enabled)
|
||||
if (d3d10->flags & D3D10_ST_FLAG_SPRITES_ENABLE)
|
||||
font_driver_render_msg(d3d10, msg,
|
||||
(const struct font_params*)params, font);
|
||||
}
|
||||
|
@ -2306,7 +2306,7 @@ D3D11_ST_FLAG_HAS_ALLOW_TEARING)) ? 0 : DXGI_PRESENT_ALLOW_TEARING;
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
#ifndef HAVE_GFX_WIDGETS
|
||||
if (d3d11->menu.enabled)
|
||||
if (d3d11->flags & D3D11_ST_FLAG_MENU_ENABLE)
|
||||
#endif
|
||||
{
|
||||
context->lpVtbl->RSSetViewports(context, 1, &d3d11->viewport);
|
||||
|
@ -78,7 +78,8 @@ static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
if (draw->coords->vertex && draw->coords->tex_coord && draw->coords->color)
|
||||
vertex_count = draw->coords->vertices;
|
||||
|
||||
if (!d3d10->sprites.enabled || vertex_count > d3d10->sprites.capacity)
|
||||
if ( (!(d3d10->flags & D3D10_ST_FLAG_SPRITES_ENABLE))
|
||||
|| (vertex_count > d3d10->sprites.capacity))
|
||||
return;
|
||||
|
||||
if (d3d10->sprites.offset + vertex_count > d3d10->sprites.capacity)
|
||||
@ -92,7 +93,7 @@ static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
D3D10_MAP_WRITE_NO_OVERWRITE, 0,
|
||||
(void**)&mapped_vbo);
|
||||
|
||||
sprite = (d3d10_sprite_t*)mapped_vbo + d3d10->sprites.offset;
|
||||
sprite = (d3d10_sprite_t*)mapped_vbo + d3d10->sprites.offset;
|
||||
|
||||
if (vertex_count == 1)
|
||||
{
|
||||
@ -150,7 +151,8 @@ static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
sprite++;
|
||||
}
|
||||
|
||||
d3d10_set_shader(d3d10->device, &d3d10->shaders[VIDEO_SHADER_STOCK_BLEND]);
|
||||
d3d10_set_shader(d3d10->device,
|
||||
&d3d10->shaders[VIDEO_SHADER_STOCK_BLEND]);
|
||||
d3d10->device->lpVtbl->IASetPrimitiveTopology(d3d10->device,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||
}
|
||||
@ -158,7 +160,8 @@ static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
d3d10->sprites.vbo->lpVtbl->Unmap(d3d10->sprites.vbo);
|
||||
}
|
||||
|
||||
d3d10_set_texture_and_sampler(d3d10->device, 0, (d3d10_texture_t*)draw->texture);
|
||||
d3d10_set_texture_and_sampler(d3d10->device, 0,
|
||||
(d3d10_texture_t*)draw->texture);
|
||||
d3d10->device->lpVtbl->Draw(d3d10->device, vertex_count,
|
||||
d3d10->sprites.offset);
|
||||
d3d10->sprites.offset += vertex_count;
|
||||
@ -169,8 +172,6 @@ static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
d3d10->device->lpVtbl->IASetPrimitiveTopology(d3d10->device,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_POINTLIST);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static void gfx_display_d3d10_draw_pipeline(gfx_display_ctx_draw_t* draw,
|
||||
@ -206,7 +207,8 @@ static void gfx_display_d3d10_draw_pipeline(gfx_display_ctx_draw_t* draw,
|
||||
d3d10->device->lpVtbl->CreateBuffer(d3d10->device, &desc,
|
||||
&vertex_data, &d3d10->menu_pipeline_vbo);
|
||||
}
|
||||
D3D10SetVertexBuffer(d3d10->device, 0, d3d10->menu_pipeline_vbo, 2 * sizeof(float), 0);
|
||||
D3D10SetVertexBuffer(d3d10->device, 0,
|
||||
d3d10->menu_pipeline_vbo, 2 * sizeof(float), 0);
|
||||
draw->coords->vertices = ca->coords.vertices;
|
||||
d3d10->device->lpVtbl->OMSetBlendState(d3d10->device,
|
||||
d3d10->blend_pipeline,
|
||||
@ -218,7 +220,8 @@ static void gfx_display_d3d10_draw_pipeline(gfx_display_ctx_draw_t* draw,
|
||||
case VIDEO_SHADER_MENU_4:
|
||||
case VIDEO_SHADER_MENU_5:
|
||||
case VIDEO_SHADER_MENU_6:
|
||||
D3D10SetVertexBuffer(d3d10->device, 0, d3d10->frame.vbo, sizeof(d3d10_vertex_t), 0);
|
||||
D3D10SetVertexBuffer(d3d10->device, 0,
|
||||
d3d10->frame.vbo, sizeof(d3d10_vertex_t), 0);
|
||||
draw->coords->vertices = 4;
|
||||
break;
|
||||
default:
|
||||
|
@ -243,12 +243,12 @@ static void d3d10_font_render_message(
|
||||
|
||||
if (!msg || !*msg)
|
||||
return;
|
||||
if (!d3d10 || !d3d10->sprites.enabled)
|
||||
if (!d3d10 || (!(d3d10->flags & D3D10_ST_FLAG_SPRITES_ENABLE)))
|
||||
return;
|
||||
|
||||
/* If font line metrics are not supported just draw as usual */
|
||||
if (!font->font_driver->get_line_metrics ||
|
||||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
|
||||
if ( !font->font_driver->get_line_metrics
|
||||
|| !font->font_driver->get_line_metrics(font->font_data, &line_metrics))
|
||||
{
|
||||
size_t msg_len = strlen(msg);
|
||||
if (msg_len <= (unsigned)d3d10->sprites.capacity)
|
||||
|
Loading…
x
Reference in New Issue
Block a user