mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-13 21:49:42 +00:00
(D3D10) Remove inline functions
This commit is contained in:
parent
b3632586f5
commit
5a5c65d9b9
@ -217,15 +217,7 @@ typedef struct
|
||||
IDXGIAdapter1 *current_adapter;
|
||||
} d3d10_video_t;
|
||||
|
||||
|
||||
#if !defined(__cplusplus) || defined(CINTERFACE)
|
||||
static INLINE HRESULT
|
||||
D3D10MapBuffer(D3D10Buffer buffer, D3D10_MAP map_type, UINT map_flags, void** data)
|
||||
{
|
||||
return buffer->lpVtbl->Map(buffer, map_type, map_flags, data);
|
||||
}
|
||||
static INLINE void D3D10UnmapBuffer(D3D10Buffer buffer) { buffer->lpVtbl->Unmap(buffer); }
|
||||
|
||||
static INLINE void D3D10SetVertexBuffer(
|
||||
D3D10Device device_context,
|
||||
UINT slot,
|
||||
@ -236,39 +228,6 @@ static INLINE void D3D10SetVertexBuffer(
|
||||
device_context->lpVtbl->IASetVertexBuffers(
|
||||
device_context, slot, 1, (D3D10Buffer* const)&vertex_buffer, &stride, &offset);
|
||||
}
|
||||
|
||||
static INLINE void D3D10SetPrimitiveTopology(D3D10Device device, D3D10_PRIMITIVE_TOPOLOGY topology)
|
||||
{
|
||||
device->lpVtbl->IASetPrimitiveTopology(device, topology);
|
||||
}
|
||||
|
||||
static INLINE void D3D10SetRenderTargets(
|
||||
D3D10Device device,
|
||||
UINT num_views,
|
||||
D3D10RenderTargetView* const render_target_views,
|
||||
D3D10DepthStencilView depth_stencil_view)
|
||||
{
|
||||
device->lpVtbl->OMSetRenderTargets(device, num_views, render_target_views, depth_stencil_view);
|
||||
}
|
||||
static INLINE void D3D10SetBlendState(
|
||||
D3D10Device device, D3D10BlendState blend_state, FLOAT blend_factor[4], UINT sample_mask)
|
||||
{
|
||||
device->lpVtbl->OMSetBlendState(device, blend_state, blend_factor, sample_mask);
|
||||
}
|
||||
|
||||
static INLINE void D3D10SetScissorRects(D3D10Device device, UINT num_rects, D3D10_RECT* rects)
|
||||
{
|
||||
device->lpVtbl->RSSetScissorRects(device, num_rects, rects);
|
||||
}
|
||||
|
||||
static INLINE HRESULT D3D10CreateBuffer(
|
||||
D3D10Device device,
|
||||
D3D10_BUFFER_DESC* desc,
|
||||
D3D10_SUBRESOURCE_DATA* initial_data,
|
||||
D3D10Buffer* buffer)
|
||||
{
|
||||
return device->lpVtbl->CreateBuffer(device, desc, initial_data, buffer);
|
||||
}
|
||||
/* end of auto-generated */
|
||||
#endif
|
||||
|
||||
@ -319,7 +278,8 @@ d3d10_get_closest_match_texture2D(D3D10Device device, DXGI_FORMAT desired_format
|
||||
{
|
||||
return d3d10_get_closest_match(
|
||||
device, desired_format,
|
||||
D3D10_FORMAT_SUPPORT_TEXTURE2D | D3D10_FORMAT_SUPPORT_SHADER_SAMPLE);
|
||||
D3D10_FORMAT_SUPPORT_TEXTURE2D
|
||||
| D3D10_FORMAT_SUPPORT_SHADER_SAMPLE);
|
||||
}
|
||||
|
||||
static INLINE void d3d10_set_shader(D3D10Device ctx, d3d10_shader_t* shader)
|
||||
|
@ -72,7 +72,8 @@ static void d3d10_clear_scissor(d3d10_video_t *d3d10, unsigned width, unsigned h
|
||||
scissor_rect.right = width;
|
||||
scissor_rect.bottom = height;
|
||||
|
||||
D3D10SetScissorRects(d3d10->device, 1, &scissor_rect);
|
||||
d3d10->device->lpVtbl->RSSetScissorRects(d3d10->device, 1,
|
||||
&scissor_rect);
|
||||
}
|
||||
|
||||
#ifdef HAVE_OVERLAY
|
||||
@ -94,7 +95,7 @@ d3d10_overlay_vertex_geom(void* data, unsigned index, float x, float y, float w,
|
||||
if (!d3d10)
|
||||
return;
|
||||
|
||||
D3D10MapBuffer(d3d10->overlays.vbo,
|
||||
d3d10->overlays.vbo->lpVtbl->Map(d3d10->overlays.vbo,
|
||||
D3D10_MAP_WRITE_NO_OVERWRITE, 0, (void**)&sprites);
|
||||
|
||||
if (sprites)
|
||||
@ -104,7 +105,8 @@ d3d10_overlay_vertex_geom(void* data, unsigned index, float x, float y, float w,
|
||||
sprites[index].pos.w = w;
|
||||
sprites[index].pos.h = h;
|
||||
}
|
||||
D3D10UnmapBuffer(d3d10->overlays.vbo);
|
||||
|
||||
d3d10->overlays.vbo->lpVtbl->Unmap(d3d10->overlays.vbo);
|
||||
}
|
||||
|
||||
static void d3d10_overlay_tex_geom(void* data, unsigned index, float u, float v, float w, float h)
|
||||
@ -115,14 +117,13 @@ static void d3d10_overlay_tex_geom(void* data, unsigned index, float u, float v,
|
||||
if (!d3d10)
|
||||
return;
|
||||
|
||||
D3D10MapBuffer(
|
||||
d3d10->overlays.vbo,
|
||||
d3d10->overlays.vbo->lpVtbl->Map(d3d10->overlays.vbo,
|
||||
D3D10_MAP_WRITE_NO_OVERWRITE, 0, (void**)&sprites);
|
||||
sprites[index].coords.u = u;
|
||||
sprites[index].coords.v = v;
|
||||
sprites[index].coords.w = w;
|
||||
sprites[index].coords.h = h;
|
||||
D3D10UnmapBuffer(d3d10->overlays.vbo);
|
||||
d3d10->overlays.vbo->lpVtbl->Unmap(d3d10->overlays.vbo);
|
||||
}
|
||||
|
||||
static void d3d10_overlay_set_alpha(void* data, unsigned index, float mod)
|
||||
@ -133,8 +134,7 @@ static void d3d10_overlay_set_alpha(void* data, unsigned index, float mod)
|
||||
if (!d3d10)
|
||||
return;
|
||||
|
||||
D3D10MapBuffer(
|
||||
d3d10->overlays.vbo,
|
||||
d3d10->overlays.vbo->lpVtbl->Map(d3d10->overlays.vbo,
|
||||
D3D10_MAP_WRITE_NO_OVERWRITE, 0, (void**)&sprites);
|
||||
|
||||
if (sprites)
|
||||
@ -144,7 +144,7 @@ static void d3d10_overlay_set_alpha(void* data, unsigned index, float mod)
|
||||
sprites[index].colors[2] = sprites[index].colors[0];
|
||||
sprites[index].colors[3] = sprites[index].colors[0];
|
||||
}
|
||||
D3D10UnmapBuffer(d3d10->overlays.vbo);
|
||||
d3d10->overlays.vbo->lpVtbl->Unmap(d3d10->overlays.vbo);
|
||||
}
|
||||
|
||||
static bool d3d10_overlay_load(void* data, const void* image_data, unsigned num_images)
|
||||
@ -171,9 +171,9 @@ static bool d3d10_overlay_load(void* data, const void* image_data, unsigned num_
|
||||
#if 0
|
||||
desc.StructureByteStride = 0;
|
||||
#endif
|
||||
D3D10CreateBuffer(d3d10->device, &desc, NULL, &d3d10->overlays.vbo);
|
||||
|
||||
D3D10MapBuffer(d3d10->overlays.vbo,
|
||||
d3d10->device->lpVtbl->CreateBuffer(d3d10->device, &desc,
|
||||
NULL, &d3d10->overlays.vbo);
|
||||
d3d10->overlays.vbo->lpVtbl->Map(d3d10->overlays.vbo,
|
||||
D3D10_MAP_WRITE_DISCARD, 0, (void**)&sprites);
|
||||
|
||||
for (i = 0; i < (unsigned)num_images; i++)
|
||||
@ -210,7 +210,7 @@ static bool d3d10_overlay_load(void* data, const void* image_data, unsigned num_
|
||||
sprites[i].colors[2] = sprites[i].colors[0];
|
||||
sprites[i].colors[3] = sprites[i].colors[0];
|
||||
}
|
||||
D3D10UnmapBuffer(d3d10->overlays.vbo);
|
||||
d3d10->overlays.vbo->lpVtbl->Unmap(d3d10->overlays.vbo);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -255,7 +255,9 @@ static void d3d10_render_overlay(d3d10_video_t *d3d10)
|
||||
else
|
||||
d3d10->device->lpVtbl->RSSetViewports(d3d10->device, 1, &d3d10->frame.viewport);
|
||||
|
||||
D3D10SetBlendState(d3d10->device, d3d10->blend_enable, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
d3d10->device->lpVtbl->OMSetBlendState(d3d10->device,
|
||||
d3d10->blend_enable, NULL,
|
||||
D3D10_DEFAULT_SAMPLE_MASK);
|
||||
D3D10SetVertexBuffer(d3d10->device, 0, d3d10->overlays.vbo, sizeof(d3d10_sprite_t), 0);
|
||||
d3d10->device->lpVtbl->PSSetSamplers(d3d10->device, 0, 1,
|
||||
&d3d10->samplers[RARCH_FILTER_UNSPEC][RARCH_WRAP_DEFAULT]);
|
||||
@ -297,9 +299,10 @@ static void d3d10_gfx_set_rotation(void* data, unsigned rotation)
|
||||
matrix_4x4_rotate_z(rot, rotation * (M_PI / 2.0f));
|
||||
matrix_4x4_multiply(d3d10->mvp, rot, d3d10->ubo_values.mvp);
|
||||
|
||||
D3D10MapBuffer(d3d10->frame.ubo, D3D10_MAP_WRITE_DISCARD, 0, &mapped_ubo);
|
||||
d3d10->frame.ubo->lpVtbl->Map(d3d10->frame.ubo,
|
||||
D3D10_MAP_WRITE_DISCARD, 0, (void**)&mapped_ubo);
|
||||
*(math_matrix_4x4*)mapped_ubo = d3d10->mvp;
|
||||
D3D10UnmapBuffer(d3d10->frame.ubo);
|
||||
d3d10->frame.ubo->lpVtbl->Unmap(d3d10->frame.ubo);
|
||||
}
|
||||
|
||||
static void d3d10_update_viewport(d3d10_video_t *d3d10, bool force_full)
|
||||
@ -496,7 +499,7 @@ static bool d3d10_gfx_set_shader(void* data, enum rarch_shader_type type, const
|
||||
if (!desc.ByteWidth)
|
||||
continue;
|
||||
|
||||
D3D10CreateBuffer(d3d10->device, &desc,
|
||||
d3d10->device->lpVtbl->CreateBuffer(d3d10->device, &desc,
|
||||
NULL, &d3d10->pass[i].buffers[j]);
|
||||
}
|
||||
}
|
||||
@ -728,7 +731,8 @@ static void *d3d10_gfx_init(const video_info_t* video,
|
||||
Release(backBuffer);
|
||||
}
|
||||
|
||||
D3D10SetRenderTargets(d3d10->device, 1, &d3d10->renderTargetView, NULL);
|
||||
d3d10->device->lpVtbl->OMSetRenderTargets(d3d10->device, 1,
|
||||
&d3d10->renderTargetView, NULL);
|
||||
|
||||
video_driver_set_size(d3d10->vp.full_width, d3d10->vp.full_height);
|
||||
d3d10->viewport.Width = d3d10->vp.full_width;
|
||||
@ -767,8 +771,10 @@ static void *d3d10_gfx_init(const video_info_t* video,
|
||||
ubo_data.SysMemPitch = 0;
|
||||
ubo_data.SysMemSlicePitch = 0;
|
||||
|
||||
D3D10CreateBuffer(d3d10->device, &desc, &ubo_data, &d3d10->ubo);
|
||||
D3D10CreateBuffer(d3d10->device, &desc, NULL, &d3d10->frame.ubo);
|
||||
d3d10->device->lpVtbl->CreateBuffer(d3d10->device, &desc,
|
||||
&ubo_data, &d3d10->ubo);
|
||||
d3d10->device->lpVtbl->CreateBuffer(d3d10->device, &desc,
|
||||
NULL, &d3d10->frame.ubo);
|
||||
}
|
||||
|
||||
d3d10_gfx_set_rotation(d3d10, 0);
|
||||
@ -835,14 +841,17 @@ static void *d3d10_gfx_init(const video_info_t* video,
|
||||
desc.CPUAccessFlags = 0;
|
||||
desc.MiscFlags = 0;
|
||||
|
||||
D3D10CreateBuffer(d3d10->device, &desc, &vertex_data, &d3d10->frame.vbo);
|
||||
d3d10->device->lpVtbl->CreateBuffer(d3d10->device, &desc,
|
||||
&vertex_data, &d3d10->frame.vbo);
|
||||
desc.Usage = D3D10_USAGE_DYNAMIC;
|
||||
desc.CPUAccessFlags = D3D10_CPU_ACCESS_WRITE;
|
||||
D3D10CreateBuffer(d3d10->device, &desc, &vertex_data, &d3d10->menu.vbo);
|
||||
d3d10->device->lpVtbl->CreateBuffer(d3d10->device, &desc,
|
||||
&vertex_data, &d3d10->menu.vbo);
|
||||
|
||||
d3d10->sprites.capacity = 16 * 1024;
|
||||
desc.ByteWidth = sizeof(d3d10_sprite_t) * d3d10->sprites.capacity;
|
||||
D3D10CreateBuffer(d3d10->device, &desc, NULL, &d3d10->sprites.vbo);
|
||||
d3d10->device->lpVtbl->CreateBuffer(d3d10->device, &desc,
|
||||
NULL, &d3d10->sprites.vbo);
|
||||
}
|
||||
|
||||
{
|
||||
@ -1273,7 +1282,8 @@ static bool d3d10_gfx_frame(
|
||||
(D3D10Resource)backBuffer, NULL, &d3d10->renderTargetView);
|
||||
Release(backBuffer);
|
||||
|
||||
D3D10SetRenderTargets(d3d10->device, 1, &d3d10->renderTargetView, NULL);
|
||||
d3d10->device->lpVtbl->OMSetRenderTargets(d3d10->device, 1,
|
||||
&d3d10->renderTargetView, NULL);
|
||||
d3d10->viewport.Width = video_width;
|
||||
d3d10->viewport.Height = video_height;
|
||||
|
||||
@ -1291,12 +1301,14 @@ static bool d3d10_gfx_frame(
|
||||
#endif
|
||||
d3d10_update_viewport(d3d10, false);
|
||||
|
||||
D3D10SetPrimitiveTopology(context, D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||
context->lpVtbl->IASetPrimitiveTopology(context,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||
|
||||
#if 0
|
||||
if (d3d10->hw.enable)
|
||||
{
|
||||
D3D10SetRenderTargets(context, 1, &d3d10->renderTargetView, NULL);
|
||||
context->lpVtbl->OMSetRenderTargets(context, 1,
|
||||
&d3d10->renderTargetView, NULL);
|
||||
context->lpVtbl->RSSetState(context, d3d10->state);
|
||||
}
|
||||
#endif
|
||||
@ -1360,7 +1372,8 @@ static bool d3d10_gfx_frame(
|
||||
}
|
||||
|
||||
D3D10SetVertexBuffer(context, 0, d3d10->frame.vbo, sizeof(d3d10_vertex_t), 0);
|
||||
D3D10SetBlendState(context, d3d10->blend_disable, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
context->lpVtbl->OMSetBlendState(context, d3d10->blend_disable, NULL,
|
||||
D3D10_DEFAULT_SAMPLE_MASK);
|
||||
|
||||
texture = d3d10->frame.texture;
|
||||
|
||||
@ -1404,8 +1417,8 @@ static bool d3d10_gfx_frame(
|
||||
void* uniform_data = NULL;
|
||||
uniform_sem_t* uniform = buffer_sem->uniforms;
|
||||
|
||||
D3D10MapBuffer(buffer, D3D10_MAP_WRITE_DISCARD,
|
||||
0, (void**)&uniform_data);
|
||||
buffer->lpVtbl->Map(buffer,
|
||||
D3D10_MAP_WRITE_DISCARD, 0, (void**)&uniform_data);
|
||||
|
||||
while (uniform->size)
|
||||
{
|
||||
@ -1414,7 +1427,7 @@ static bool d3d10_gfx_frame(
|
||||
uniform->data, uniform->size);
|
||||
uniform++;
|
||||
}
|
||||
D3D10UnmapBuffer(buffer);
|
||||
buffer->lpVtbl->Unmap(buffer);
|
||||
|
||||
if (buffer_sem->stage_mask & SLANG_STAGE_VERTEX_MASK)
|
||||
context->lpVtbl->VSSetConstantBuffers(context, buffer_sem->binding, 1, &buffer);
|
||||
@ -1427,7 +1440,8 @@ static bool d3d10_gfx_frame(
|
||||
|
||||
{
|
||||
D3D10RenderTargetView null_rt = NULL;
|
||||
D3D10SetRenderTargets(context, 1, &null_rt, NULL);
|
||||
context->lpVtbl->OMSetRenderTargets(context, 1,
|
||||
&null_rt, NULL);
|
||||
}
|
||||
|
||||
{
|
||||
@ -1457,7 +1471,8 @@ static bool d3d10_gfx_frame(
|
||||
|
||||
if (d3d10->pass[i].rt.handle)
|
||||
{
|
||||
D3D10SetRenderTargets(context, 1, &d3d10->pass[i].rt.rt_view, NULL);
|
||||
context->lpVtbl->OMSetRenderTargets(context, 1,
|
||||
&d3d10->pass[i].rt.rt_view, NULL);
|
||||
context->lpVtbl->RSSetViewports(context, 1, &d3d10->pass[i].viewport);
|
||||
|
||||
context->lpVtbl->Draw(context, 4, 0);
|
||||
@ -1469,7 +1484,8 @@ static bool d3d10_gfx_frame(
|
||||
break;
|
||||
}
|
||||
}
|
||||
D3D10SetRenderTargets(context, 1, &d3d10->renderTargetView, NULL);
|
||||
context->lpVtbl->OMSetRenderTargets(context, 1,
|
||||
&d3d10->renderTargetView, NULL);
|
||||
}
|
||||
|
||||
if (texture)
|
||||
@ -1492,8 +1508,8 @@ static bool d3d10_gfx_frame(
|
||||
d3d10_clear_scissor(d3d10, video_width, video_height);
|
||||
|
||||
context->lpVtbl->Draw(context, 4, 0);
|
||||
|
||||
D3D10SetBlendState(context, d3d10->blend_enable, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
context->lpVtbl->OMSetBlendState(context, d3d10->blend_enable, NULL,
|
||||
D3D10_DEFAULT_SAMPLE_MASK);
|
||||
|
||||
if (d3d10->menu.enabled && d3d10->menu.texture.handle)
|
||||
{
|
||||
@ -1508,7 +1524,7 @@ static bool d3d10_gfx_frame(
|
||||
}
|
||||
|
||||
d3d10_set_shader(context, &d3d10->sprites.shader);
|
||||
D3D10SetPrimitiveTopology(context, D3D10_PRIMITIVE_TOPOLOGY_POINTLIST);
|
||||
context->lpVtbl->IASetPrimitiveTopology(context, D3D10_PRIMITIVE_TOPOLOGY_POINTLIST);
|
||||
context->lpVtbl->VSSetConstantBuffers(context, 0, 1, (ID3D10Buffer **
|
||||
const)&d3d10->ubo);
|
||||
context->lpVtbl->PSSetConstantBuffers(context, 0, 1, (ID3D10Buffer **
|
||||
@ -1541,7 +1557,9 @@ static bool d3d10_gfx_frame(
|
||||
if (osd_params)
|
||||
{
|
||||
context->lpVtbl->RSSetViewports(context, 1, &d3d10->viewport);
|
||||
D3D10SetBlendState(d3d10->device, d3d10->blend_enable, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
d3d10->device->lpVtbl->OMSetBlendState(d3d10->device,
|
||||
d3d10->blend_enable, NULL,
|
||||
D3D10_DEFAULT_SAMPLE_MASK);
|
||||
D3D10SetVertexBuffer(context, 0, d3d10->sprites.vbo, sizeof(d3d10_sprite_t), 0);
|
||||
font_driver_render_msg(d3d10,
|
||||
stat_text,
|
||||
@ -1562,7 +1580,9 @@ static bool d3d10_gfx_frame(
|
||||
if (msg && *msg)
|
||||
{
|
||||
d3d10->device->lpVtbl->RSSetViewports(d3d10->device, 1, &d3d10->viewport);
|
||||
D3D10SetBlendState(d3d10->device, d3d10->blend_enable, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
d3d10->device->lpVtbl->OMSetBlendState(d3d10->device,
|
||||
d3d10->blend_enable, NULL,
|
||||
D3D10_DEFAULT_SAMPLE_MASK);
|
||||
D3D10SetVertexBuffer(d3d10->device, 0, d3d10->sprites.vbo, sizeof(d3d10_sprite_t), 0);
|
||||
font_driver_render_msg(d3d10, msg, NULL, NULL);
|
||||
}
|
||||
|
@ -31,15 +31,17 @@
|
||||
static void gfx_display_d3d10_blend_begin(void *data)
|
||||
{
|
||||
d3d10_video_t* d3d10 = (d3d10_video_t*)data;
|
||||
D3D10SetBlendState(d3d10->device,
|
||||
d3d10->blend_enable, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
d3d10->device->lpVtbl->OMSetBlendState(d3d10->device,
|
||||
d3d10->blend_enable,
|
||||
NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
}
|
||||
|
||||
static void gfx_display_d3d10_blend_end(void *data)
|
||||
{
|
||||
d3d10_video_t* d3d10 = (d3d10_video_t*)data;
|
||||
D3D10SetBlendState(d3d10->device,
|
||||
d3d10->blend_disable, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
d3d10->device->lpVtbl->OMSetBlendState(d3d10->device,
|
||||
d3d10->blend_disable,
|
||||
NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
}
|
||||
|
||||
static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
@ -62,10 +64,13 @@ static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
d3d10_set_shader(d3d10->device, &d3d10->shaders[draw->pipeline_id]);
|
||||
d3d10->device->lpVtbl->Draw(d3d10->device, draw->coords->vertices, 0);
|
||||
|
||||
D3D10SetBlendState(d3d10->device, d3d10->blend_enable, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
d3d10->device->lpVtbl->OMSetBlendState(d3d10->device,
|
||||
d3d10->blend_enable,
|
||||
NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
d3d10_set_shader(d3d10->device, &d3d10->sprites.shader);
|
||||
D3D10SetVertexBuffer(d3d10->device, 0, d3d10->sprites.vbo, sizeof(d3d10_sprite_t), 0);
|
||||
D3D10SetPrimitiveTopology(d3d10->device, D3D10_PRIMITIVE_TOPOLOGY_POINTLIST);
|
||||
d3d10->device->lpVtbl->IASetPrimitiveTopology(d3d10->device,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_POINTLIST);
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
@ -84,7 +89,9 @@ static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
void* mapped_vbo = NULL;
|
||||
d3d10_sprite_t* sprite = NULL;
|
||||
|
||||
D3D10MapBuffer(d3d10->sprites.vbo, D3D10_MAP_WRITE_NO_OVERWRITE, 0, &mapped_vbo);
|
||||
d3d10->sprites.vbo->lpVtbl->Map(d3d10->sprites.vbo,
|
||||
D3D10_MAP_WRITE_NO_OVERWRITE, 0,
|
||||
(void**)&mapped_vbo);
|
||||
|
||||
sprite = (d3d10_sprite_t*)mapped_vbo + d3d10->sprites.offset;
|
||||
|
||||
@ -145,10 +152,11 @@ static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
}
|
||||
|
||||
d3d10_set_shader(d3d10->device, &d3d10->shaders[VIDEO_SHADER_STOCK_BLEND]);
|
||||
D3D10SetPrimitiveTopology(d3d10->device, D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||
d3d10->device->lpVtbl->IASetPrimitiveTopology(d3d10->device,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||
}
|
||||
|
||||
D3D10UnmapBuffer(d3d10->sprites.vbo);
|
||||
d3d10->sprites.vbo->lpVtbl->Unmap(d3d10->sprites.vbo);
|
||||
}
|
||||
|
||||
d3d10_set_texture_and_sampler(d3d10->device, 0, (d3d10_texture_t*)draw->texture);
|
||||
@ -159,7 +167,8 @@ static void gfx_display_d3d10_draw(gfx_display_ctx_draw_t *draw,
|
||||
if (vertex_count > 1)
|
||||
{
|
||||
d3d10_set_shader(d3d10->device, &d3d10->sprites.shader);
|
||||
D3D10SetPrimitiveTopology(d3d10->device, D3D10_PRIMITIVE_TOPOLOGY_POINTLIST);
|
||||
d3d10->device->lpVtbl->IASetPrimitiveTopology(d3d10->device,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_POINTLIST);
|
||||
}
|
||||
|
||||
return;
|
||||
@ -195,12 +204,14 @@ static void gfx_display_d3d10_draw_pipeline(gfx_display_ctx_draw_t* draw,
|
||||
vertex_data.pSysMem = ca->coords.vertex;
|
||||
vertex_data.SysMemPitch = 0;
|
||||
vertex_data.SysMemSlicePitch = 0;
|
||||
D3D10CreateBuffer(d3d10->device, &desc, &vertex_data,
|
||||
&d3d10->menu_pipeline_vbo);
|
||||
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);
|
||||
draw->coords->vertices = ca->coords.vertices;
|
||||
D3D10SetBlendState(d3d10->device, d3d10->blend_pipeline, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
d3d10->device->lpVtbl->OMSetBlendState(d3d10->device,
|
||||
d3d10->blend_pipeline,
|
||||
NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -215,15 +226,17 @@ static void gfx_display_d3d10_draw_pipeline(gfx_display_ctx_draw_t* draw,
|
||||
return;
|
||||
}
|
||||
|
||||
D3D10SetPrimitiveTopology(d3d10->device, D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||
d3d10->device->lpVtbl->IASetPrimitiveTopology(d3d10->device,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
|
||||
|
||||
d3d10->ubo_values.time += 0.01f;
|
||||
|
||||
{
|
||||
void *mapped_ubo = NULL;
|
||||
D3D10MapBuffer(d3d10->ubo, D3D10_MAP_WRITE_DISCARD, 0, (void**)&mapped_ubo);
|
||||
d3d10->ubo->lpVtbl->Map(d3d10->ubo, D3D10_MAP_WRITE_DISCARD, 0,
|
||||
(void**)&mapped_ubo);
|
||||
*(d3d10_uniform_t*)mapped_ubo = d3d10->ubo_values;
|
||||
D3D10UnmapBuffer(d3d10->ubo);
|
||||
d3d10->ubo->lpVtbl->Unmap(d3d10->ubo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -259,7 +272,7 @@ void gfx_display_d3d10_scissor_begin(void *data,
|
||||
rect.right = width + x;
|
||||
rect.bottom = height + y;
|
||||
|
||||
D3D10SetScissorRects(d3d10->device, 1, &rect);
|
||||
d3d10->device->lpVtbl->RSSetScissorRects(d3d10->device, 1, &rect);
|
||||
}
|
||||
|
||||
void gfx_display_d3d10_scissor_end(void *data,
|
||||
@ -276,7 +289,7 @@ void gfx_display_d3d10_scissor_end(void *data,
|
||||
rect.right = video_width;
|
||||
rect.bottom = video_height;
|
||||
|
||||
D3D10SetScissorRects(d3d10->device, 1, &rect);
|
||||
d3d10->device->lpVtbl->RSSetScissorRects(d3d10->device, 1, &rect);
|
||||
}
|
||||
|
||||
gfx_display_ctx_driver_t gfx_display_ctx_d3d10 = {
|
||||
|
@ -158,7 +158,8 @@ static void d3d10_font_render_line(
|
||||
break;
|
||||
}
|
||||
|
||||
D3D10MapBuffer(d3d10->sprites.vbo, D3D10_MAP_WRITE_NO_OVERWRITE, 0, (void**)&mapped_vbo);
|
||||
d3d10->sprites.vbo->lpVtbl->Map(d3d10->sprites.vbo,
|
||||
D3D10_MAP_WRITE_NO_OVERWRITE, 0, (void**)&mapped_vbo);
|
||||
|
||||
v = (d3d10_sprite_t*)mapped_vbo + d3d10->sprites.offset;
|
||||
glyph_q = font->font_driver->get_glyph(font->font_data, '?');
|
||||
@ -203,7 +204,7 @@ static void d3d10_font_render_line(
|
||||
}
|
||||
|
||||
count = v - ((d3d10_sprite_t*)mapped_vbo + d3d10->sprites.offset);
|
||||
D3D10UnmapBuffer(d3d10->sprites.vbo);
|
||||
d3d10->sprites.vbo->lpVtbl->Unmap(d3d10->sprites.vbo);
|
||||
|
||||
if (!count)
|
||||
return;
|
||||
@ -219,7 +220,9 @@ static void d3d10_font_render_line(
|
||||
}
|
||||
|
||||
d3d10_set_texture_and_sampler(d3d10->device, 0, &font->texture);
|
||||
D3D10SetBlendState(d3d10->device, d3d10->blend_enable, NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
d3d10->device->lpVtbl->OMSetBlendState(d3d10->device,
|
||||
d3d10->blend_enable,
|
||||
NULL, D3D10_DEFAULT_SAMPLE_MASK);
|
||||
|
||||
d3d10->device->lpVtbl->PSSetShader(d3d10->device, d3d10->sprites.shader_font.ps);
|
||||
d3d10->device->lpVtbl->Draw(d3d10->device, count, d3d10->sprites.offset);
|
||||
|
Loading…
x
Reference in New Issue
Block a user