d2d1: Implement d2d_state_block_GetDescription().

This commit is contained in:
Henri Verbeet 2015-03-25 10:05:30 +01:00 committed by Alexandre Julliard
parent 29af90be0c
commit 95f5dc72a2
2 changed files with 17 additions and 6 deletions

View File

@ -175,6 +175,7 @@ struct d2d_state_block
ID2D1DrawingStateBlock ID2D1DrawingStateBlock_iface;
LONG refcount;
D2D1_DRAWING_STATE_DESCRIPTION drawing_state;
IDWriteRenderingParams *text_rendering_params;
};

View File

@ -84,7 +84,11 @@ static void STDMETHODCALLTYPE d2d_state_block_GetFactory(ID2D1DrawingStateBlock
static void STDMETHODCALLTYPE d2d_state_block_GetDescription(ID2D1DrawingStateBlock *iface,
D2D1_DRAWING_STATE_DESCRIPTION *desc)
{
FIXME("iface %p, desc %p stub!\n", iface, desc);
struct d2d_state_block *state_block = impl_from_ID2D1DrawingStateBlock(iface);
TRACE("iface %p, desc %p.\n", iface, desc);
*desc = state_block->drawing_state;
}
static void STDMETHODCALLTYPE d2d_state_block_SetDescription(ID2D1DrawingStateBlock *iface,
@ -133,13 +137,19 @@ static const struct ID2D1DrawingStateBlockVtbl d2d_state_block_vtbl =
void d2d_state_block_init(struct d2d_state_block *state_block, const D2D1_DRAWING_STATE_DESCRIPTION *desc,
IDWriteRenderingParams *text_rendering_params)
{
FIXME("Ignoring state block properties.\n");
static const D2D1_MATRIX_3X2_F identity =
{
1.0f, 0.0f,
0.0f, 1.0f,
0.0f, 0.0f,
};
state_block->ID2D1DrawingStateBlock_iface.lpVtbl = &d2d_state_block_vtbl;
state_block->refcount = 1;
if (text_rendering_params)
{
state_block->text_rendering_params = text_rendering_params;
if (desc)
state_block->drawing_state = *desc;
else
state_block->drawing_state.transform = identity;
if ((state_block->text_rendering_params = text_rendering_params))
IDWriteRenderingParams_AddRef(state_block->text_rendering_params);
}
}