(D3D9 PC) Go through font context driver now
This commit is contained in:
parent
13620ab16d
commit
7cbfb14791
|
@ -91,7 +91,9 @@ RECT d3d_monitor_rect(void *data)
|
||||||
static void d3d_deinitialize(void *data)
|
static void d3d_deinitialize(void *data)
|
||||||
{
|
{
|
||||||
D3DVideo *d3d = reinterpret_cast<D3DVideo*>(data);
|
D3DVideo *d3d = reinterpret_cast<D3DVideo*>(data);
|
||||||
d3d_deinit_font(d3d);
|
|
||||||
|
if (d3d->font_ctx && d3d->font_ctx->deinit)
|
||||||
|
d3d->font_ctx->deinit(d3d);
|
||||||
d3d_deinit_chain(d3d);
|
d3d_deinit_chain(d3d);
|
||||||
#ifdef HAVE_CG
|
#ifdef HAVE_CG
|
||||||
d3d_deinit_shader(d3d);
|
d3d_deinit_shader(d3d);
|
||||||
|
@ -211,7 +213,8 @@ static bool d3d_initialize(void *data, const video_info_t *info)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!d3d_init_font(d3d))
|
d3d->font_ctx = d3d_font_init_first(d3d, g_settings.video.font_path, g_settings.video.font_size);
|
||||||
|
if (!d3d->font_ctx)
|
||||||
{
|
{
|
||||||
RARCH_ERR("Failed to initialize font.\n");
|
RARCH_ERR("Failed to initialize font.\n");
|
||||||
return false;
|
return false;
|
||||||
|
@ -473,7 +476,8 @@ static bool d3d_frame(void *data, const void *frame,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
d3d_render_msg(d3d, msg, NULL);
|
if (d3d->font_ctx && d3d->font_ctx->render_msg)
|
||||||
|
d3d->font_ctx->render_msg(d3d, msg, NULL);
|
||||||
|
|
||||||
#ifdef HAVE_MENU
|
#ifdef HAVE_MENU
|
||||||
if (d3d->rgui.enabled)
|
if (d3d->rgui.enabled)
|
||||||
|
@ -832,15 +836,6 @@ static void d3d_apply_state_changes(void *data)
|
||||||
d3d->should_resize = true;
|
d3d->should_resize = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d_render_msg(void *data, const char *msg, void *userdata)
|
|
||||||
{
|
|
||||||
D3DVideo *d3d = reinterpret_cast<D3DVideo*>(data);
|
|
||||||
d3d_font_msg(d3d, msg, userdata);
|
|
||||||
|
|
||||||
if (userdata)
|
|
||||||
d3d_set_font_rect(d3d, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void d3d_set_osd_msg(void *data, const char *msg, void *userdata)
|
static void d3d_set_osd_msg(void *data, const char *msg, void *userdata)
|
||||||
{
|
{
|
||||||
font_params_t *params = (font_params_t*)userdata;
|
font_params_t *params = (font_params_t*)userdata;
|
||||||
|
@ -849,7 +844,8 @@ static void d3d_set_osd_msg(void *data, const char *msg, void *userdata)
|
||||||
if (params)
|
if (params)
|
||||||
d3d_set_font_rect(d3d, params);
|
d3d_set_font_rect(d3d, params);
|
||||||
|
|
||||||
d3d_render_msg(d3d, msg, params);
|
if (d3d->font_ctx && d3d->font_ctx->render_msg)
|
||||||
|
d3d->font_ctx->render_msg(d3d, msg, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3d_show_mouse(void *data, bool state)
|
static void d3d_show_mouse(void *data, bool state)
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
#include "../shader_parse.h"
|
#include "../shader_parse.h"
|
||||||
|
|
||||||
|
#include "../fonts/d3d_font.h"
|
||||||
#include "../gfx_context.h"
|
#include "../gfx_context.h"
|
||||||
#include "../gfx_common.h"
|
#include "../gfx_common.h"
|
||||||
|
|
||||||
|
@ -81,15 +82,13 @@ bool d3d_init_singlepass(void *data);
|
||||||
bool d3d_init_multipass(void *data);
|
bool d3d_init_multipass(void *data);
|
||||||
bool d3d_init_chain(void *data, const video_info_t *video_info);
|
bool d3d_init_chain(void *data, const video_info_t *video_info);
|
||||||
void d3d_deinit_chain(void *data);
|
void d3d_deinit_chain(void *data);
|
||||||
bool d3d_init_font(void *data);
|
|
||||||
void d3d_deinit_font(void *data);
|
|
||||||
void d3d_font_msg(void *data, const char *msg, void *userdata);
|
|
||||||
void d3d_show_cursor(void *data, bool state);
|
void d3d_show_cursor(void *data, bool state);
|
||||||
void d3d_make_d3dpp(void *data, const video_info_t *info, D3DPRESENT_PARAMETERS *d3dpp);
|
void d3d_make_d3dpp(void *data, const video_info_t *info, D3DPRESENT_PARAMETERS *d3dpp);
|
||||||
bool d3d_alive_func(void *data);
|
bool d3d_alive_func(void *data);
|
||||||
|
|
||||||
struct D3DVideo
|
struct D3DVideo
|
||||||
{
|
{
|
||||||
|
const d3d_font_renderer_t *font_ctx;
|
||||||
const gfx_ctx_driver_t *ctx_driver;
|
const gfx_ctx_driver_t *ctx_driver;
|
||||||
bool should_resize;
|
bool should_resize;
|
||||||
|
|
||||||
|
|
|
@ -419,34 +419,6 @@ void d3d_deinit_chain(void *data)
|
||||||
d3d->chain = NULL;
|
d3d->chain = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool d3d_init_font(void *data)
|
|
||||||
{
|
|
||||||
D3DVideo *d3d = reinterpret_cast<D3DVideo*>(data);
|
|
||||||
D3DXFONT_DESC desc = {
|
|
||||||
static_cast<int>(g_settings.video.font_size), 0, 400, 0,
|
|
||||||
false, DEFAULT_CHARSET,
|
|
||||||
OUT_TT_PRECIS,
|
|
||||||
CLIP_DEFAULT_PRECIS,
|
|
||||||
DEFAULT_PITCH,
|
|
||||||
"Verdana" // Hardcode ftl :(
|
|
||||||
};
|
|
||||||
|
|
||||||
uint32_t r = static_cast<uint32_t>(g_settings.video.msg_color_r * 255) & 0xff;
|
|
||||||
uint32_t g = static_cast<uint32_t>(g_settings.video.msg_color_g * 255) & 0xff;
|
|
||||||
uint32_t b = static_cast<uint32_t>(g_settings.video.msg_color_b * 255) & 0xff;
|
|
||||||
d3d->font_color = D3DCOLOR_XRGB(r, g, b);
|
|
||||||
|
|
||||||
return SUCCEEDED(D3DXCreateFontIndirect(d3d->dev, &desc, &d3d->font));
|
|
||||||
}
|
|
||||||
|
|
||||||
void d3d_deinit_font(void *data)
|
|
||||||
{
|
|
||||||
D3DVideo *d3d = reinterpret_cast<D3DVideo*>(data);
|
|
||||||
if (d3d->font)
|
|
||||||
d3d->font->Release();
|
|
||||||
d3d->font = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void gfx_ctx_d3d_show_mouse(bool state)
|
static void gfx_ctx_d3d_show_mouse(bool state)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_WINDOW
|
#ifdef HAVE_WINDOW
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
* If not, see <http://www.gnu.org/licenses/>.
|
* If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "../d3d9/d3d9.hpp"
|
||||||
#include "d3d_font.h"
|
#include "d3d_font.h"
|
||||||
#include "../gfx_common.h"
|
#include "../gfx_common.h"
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
@ -48,7 +49,7 @@ static void d3dfonts_w32_deinit_font(void *data)
|
||||||
d3d->font = NULL;
|
d3d->font = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void d3dfonts_w32_render_msg(void *data, const char *msg, void *parms)
|
static void d3dfonts_w32_render_msg(void *data, const char *msg, void *userdata)
|
||||||
{
|
{
|
||||||
D3DVideo *d3d = reinterpret_cast<D3DVideo*>(data);
|
D3DVideo *d3d = reinterpret_cast<D3DVideo*>(data);
|
||||||
font_params_t *params = (font_params_t*)userdata;
|
font_params_t *params = (font_params_t*)userdata;
|
||||||
|
@ -73,7 +74,7 @@ static void d3dfonts_w32_render_msg(void *data, const char *msg, void *parms)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const d3d_font_renderer_t d3d_xdk1_font = {
|
const d3d_font_renderer_t d3d_win32_font = {
|
||||||
d3dfonts_w32_init_font,
|
d3dfonts_w32_init_font,
|
||||||
d3dfonts_w32_deinit_font,
|
d3dfonts_w32_deinit_font,
|
||||||
d3dfonts_w32_render_msg,
|
d3dfonts_w32_render_msg,
|
||||||
|
|
|
@ -226,6 +226,8 @@
|
||||||
<ClCompile Include="..\..\gfx\d3d9\d3d9_pc.cpp" />
|
<ClCompile Include="..\..\gfx\d3d9\d3d9_pc.cpp" />
|
||||||
<ClCompile Include="..\..\gfx\d3d9\render_chain.cpp" />
|
<ClCompile Include="..\..\gfx\d3d9\render_chain.cpp" />
|
||||||
<ClCompile Include="..\..\gfx\fonts\bitmapfont.c" />
|
<ClCompile Include="..\..\gfx\fonts\bitmapfont.c" />
|
||||||
|
<ClCompile Include="..\..\gfx\fonts\d3d_font.c" />
|
||||||
|
<ClCompile Include="..\..\gfx\fonts\d3d_w32_font.c" />
|
||||||
<ClCompile Include="..\..\gfx\fonts\fonts.c" />
|
<ClCompile Include="..\..\gfx\fonts\fonts.c" />
|
||||||
<ClCompile Include="..\..\gfx\fonts\gl_font.c" />
|
<ClCompile Include="..\..\gfx\fonts\gl_font.c" />
|
||||||
<ClCompile Include="..\..\gfx\fonts\gl_raster_font.c" />
|
<ClCompile Include="..\..\gfx\fonts\gl_raster_font.c" />
|
||||||
|
|
|
@ -135,9 +135,6 @@
|
||||||
<ClCompile Include="..\..\gfx\context\win32_common.c">
|
<ClCompile Include="..\..\gfx\context\win32_common.c">
|
||||||
<Filter>input</Filter>
|
<Filter>input</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\gfx\fonts\fonts.c">
|
|
||||||
<Filter>gfx\fonts</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\gfx\scaler\pixconv.c">
|
<ClCompile Include="..\..\gfx\scaler\pixconv.c">
|
||||||
<Filter>gfx\scaler</Filter>
|
<Filter>gfx\scaler</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -150,9 +147,6 @@
|
||||||
<ClCompile Include="..\..\gfx\scaler\filter.c">
|
<ClCompile Include="..\..\gfx\scaler\filter.c">
|
||||||
<Filter>gfx\scaler</Filter>
|
<Filter>gfx\scaler</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\gfx\fonts\bitmapfont.c">
|
|
||||||
<Filter>gfx\fonts</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\gfx\d3d9\render_chain.cpp">
|
<ClCompile Include="..\..\gfx\d3d9\render_chain.cpp">
|
||||||
<Filter>gfx\d3d9</Filter>
|
<Filter>gfx\d3d9</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -219,6 +213,18 @@
|
||||||
<ClCompile Include="..\..\deps\rzlib\unzip.c">
|
<ClCompile Include="..\..\deps\rzlib\unzip.c">
|
||||||
<Filter>deps\zlib</Filter>
|
<Filter>deps\zlib</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\gfx\fonts\d3d_w32_font.c">
|
||||||
|
<Filter>gfx\fonts</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\gfx\fonts\d3d_font.c">
|
||||||
|
<Filter>gfx\fonts</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\gfx\fonts\fonts.c">
|
||||||
|
<Filter>gfx\fonts</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\gfx\fonts\bitmapfont.c">
|
||||||
|
<Filter>gfx\fonts</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="resource.h" />
|
<ClInclude Include="resource.h" />
|
||||||
|
|
Loading…
Reference in New Issue