windows: Revert "windows: Fix font clipping issue" (#14045)

The implemetation of that PR is totally wrong, sorry for that!

Release Notes:

- N/A
This commit is contained in:
张小白 2024-07-10 23:19:29 +08:00 committed by GitHub
parent 7ef64fe6db
commit 1662993811
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -49,8 +49,7 @@ struct DirectWriteComponent {
struct GlyphRenderContext { struct GlyphRenderContext {
params: IDWriteRenderingParams3, params: IDWriteRenderingParams3,
normal_dc_target: ID2D1DeviceContext4, dc_target: ID2D1DeviceContext4,
emoji_dc_target: ID2D1DeviceContext4,
} }
// All use of the IUnknown methods should be "thread-safe". // All use of the IUnknown methods should be "thread-safe".
@ -128,16 +127,7 @@ impl GlyphRenderContext {
DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC, DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC,
grid_fit_mode, grid_fit_mode,
)?; )?;
let normal_dc_target = { let dc_target = {
let target = d2d1_factory.CreateDCRenderTarget(&get_render_target_property(
DXGI_FORMAT_A8_UNORM,
D2D1_ALPHA_MODE_STRAIGHT,
))?;
let target = target.cast::<ID2D1DeviceContext4>()?;
target.SetTextRenderingParams(&params);
target
};
let emoji_dc_target = {
let target = d2d1_factory.CreateDCRenderTarget(&get_render_target_property( let target = d2d1_factory.CreateDCRenderTarget(&get_render_target_property(
DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM,
D2D1_ALPHA_MODE_PREMULTIPLIED, D2D1_ALPHA_MODE_PREMULTIPLIED,
@ -147,11 +137,7 @@ impl GlyphRenderContext {
target target
}; };
Ok(Self { Ok(Self { params, dc_target })
params,
normal_dc_target,
emoji_dc_target,
})
} }
} }
} }
@ -571,11 +557,7 @@ impl DirectWriteState {
} }
fn raster_bounds(&self, params: &RenderGlyphParams) -> Result<Bounds<DevicePixels>> { fn raster_bounds(&self, params: &RenderGlyphParams) -> Result<Bounds<DevicePixels>> {
let render_target = if params.is_emoji { let render_target = &self.components.render_context.dc_target;
&self.components.render_context.emoji_dc_target
} else {
&self.components.render_context.normal_dc_target
};
unsafe { unsafe {
render_target.SetUnitMode(D2D1_UNIT_MODE_DIPS); render_target.SetUnitMode(D2D1_UNIT_MODE_DIPS);
render_target.SetDpi(96.0 * params.scale_factor, 96.0 * params.scale_factor); render_target.SetDpi(96.0 * params.scale_factor, 96.0 * params.scale_factor);