Commit Graph

140 Commits

Author SHA1 Message Date
Nikolay Sivov e2f9bc0d0b d2d1: SetDpi() rejects negative values too.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 01:26:17 +09:00
Nikolay Sivov d309b843fb d2d1: Block target creation on invalid dpi values.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 01:26:17 +09:00
Nikolay Sivov 7dd7500327 d2d1: Support different measuring modes in DrawText().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 01:26:17 +09:00
Nikolay Sivov c05dd9e11f d2d1: Don't update target dpi if only one SetDpi() argument is zero.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-20 21:18:56 +09:00
Francois Gouget d08a1da22a d2d1: Remove WINAPI on static functions where not needed.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-23 23:35:23 +09:00
Nikolay Sivov a5612e0275 d2d1: Fix a copy-paste issue in EndDraw() (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-23 23:35:22 +09:00
Henri Verbeet 55d403deb9 d2d1: Take the recommended rendering mode into account in d2d_d3d_render_target_DrawGlyphRun().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 12:59:36 +09:00
Henri Verbeet b5685efc80 d2d1: Add a pixel shader for triangle/solid/bitmap draws.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 12:59:32 +09:00
Henri Verbeet f1f2d0f5cc d2d1: Add a pixel shader for triangle/bitmap/solid draws.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 00:24:33 +09:00
Henri Verbeet 8446e4530a d2d1: Add a pixel shader for triangle/bitmap/bitmap draws.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 00:24:31 +09:00
Henri Verbeet e6aa9f5041 d2d1: Add support for opacity brushes.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 00:24:22 +09:00
Henri Verbeet 17daa1398e d2d1: Validate brush types in d2d_d3d_render_target_FillGeometry().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 00:24:19 +09:00
Henri Verbeet acbb0bdfac d2d1: Implement d2d_factory_CreateTransformedGeometry(). 2015-08-20 20:26:41 +09:00
Henri Verbeet 57eec429c6 d2d1: Implement d2d_text_renderer_DrawInlineObject(). 2015-08-18 18:28:51 +09:00
Henri Verbeet 4460006fbd d2d1: Only draw if the geometry has any faces in d2d_d3d_render_target_FillGeometry(). 2015-08-17 22:50:44 +09:00
Henri Verbeet 20ad2e397f d2d1: Print a WARN instead of a FIXME for the glyph run description in d2d_text_renderer_DrawGlyphRun().
The glyph run description seems to be mostly informational, there doesn't
appear to be a lot we could do with it.
2015-08-17 22:50:41 +09:00
Henri Verbeet 3e0af5f1e0 d2d1: Only print a FIXME/WARN for specific properties in d2d_d3d_render_target_init(). 2015-08-17 22:50:37 +09:00
Henri Verbeet 64ccd138a2 d2d1: d2d_bitmap_brush_init() can't fail. 2015-08-13 15:04:08 +09:00
Henri Verbeet cd59e3db6c d2d1: Implement d2d_d3d_render_target_CreateSharedBitmap(). 2015-08-04 09:45:59 +02:00
Henri Verbeet 91b9ce69b7 d2d1: Implement d2d_gradient_GetFactory(). 2015-08-03 10:56:53 +02:00
Henri Verbeet 414d04e27d d2d1: Implement d2d_bitmap_brush_GetFactory(). 2015-08-03 10:56:44 +02:00
Henri Verbeet 9745efaf6d d2d1: Implement d2d_mesh_GetFactory(). 2015-07-31 12:08:57 +02:00
Henri Verbeet c2135dd498 d2d1: Properly handle D2D1_ALPHA_MODE_PREMULTIPLIED on render targets. 2015-07-30 11:39:51 +02:00
Henri Verbeet 52c412492f d2d1: Bitmap values are always premultiplied in practice.
Since creating bitmaps with D2D1_ALPHA_MODE_UNKNOWN or
D2D1_ALPHA_MODE_STRAIGHT is not possible, and D2D1_ALPHA_MODE_IGNORE
behaves as if alpha == 1.0f.
2015-07-30 11:39:46 +02:00
Henri Verbeet 230785dc32 d2d1: Force alpha to 1.0f for clears. 2015-07-29 21:44:02 +02:00
Henri Verbeet c4503779bb d2d1: Take the bitmap's alpha mode into account in bitmap brushes. 2015-07-29 21:44:02 +02:00
Henri Verbeet ccc347038b d2d1: Also infer the alpha mode in d2d_d3d_render_target_CreateBitmapFromWicBitmap(). 2015-07-28 09:49:04 +02:00
Henri Verbeet a4bcae0bf7 d2d1: Implement d2d_d3d_render_target_GetPixelFormat(). 2015-07-21 16:33:23 +02:00
Henri Verbeet 4c64c76c0b d2d1: Implement d2d_d3d_render_target_FillEllipse(). 2015-07-21 16:33:23 +02:00
Henri Verbeet 9afd280d26 d2d1: Implement d2d_d3d_render_target_FillRoundedRectangle(). 2015-07-21 16:33:22 +02:00
Henri Verbeet d1e1429218 d2d1: Add a missing TRACE to d2d_d3d_render_target_FillRectangle().
This accidentally got lost in b92a05c84e.
2015-07-21 16:33:22 +02:00
Henri Verbeet fc1286aed8 d2d1: Add some FIXMEs for unimplemented functionality to d2d_d3d_render_target_DrawGlyphRun(). 2015-07-20 11:50:22 +02:00
Henri Verbeet b33786ce6d d2d1: Implement initial support for drawing bezier curves. 2015-07-20 11:50:20 +02:00
Henri Verbeet b92a05c84e d2d1: Implement d2d_d3d_render_target_FillGeometry(). 2015-07-14 23:27:21 +09:00
Henri Verbeet 3bb382aabb d2d1: Introduce a separate function to construct pixel shader constant buffers for brushes. 2015-07-14 23:27:21 +09:00
Henri Verbeet 1f4e37659c d2d1: Also bind the pixel shader and blend state in d2d_brush_bind_resources(). 2015-07-14 23:27:21 +09:00
Henri Verbeet aed042d4dc d2d1: Implement d2d_d3d_render_target_DrawText(). 2015-07-10 22:23:11 +09:00
Henri Verbeet 03e60da52b d2d1: Implement d2d_text_renderer_GetPixelsPerDip(). 2015-07-09 23:18:07 +09:00
Henri Verbeet a73035c302 d2d1: Implement d2d_text_renderer_GetCurrentTransform(). 2015-07-09 23:18:05 +09:00
Henri Verbeet 47260762a9 d2d1: Implement d2d_text_renderer_IsPixelSnappingDisabled(). 2015-07-09 23:18:03 +09:00
Henri Verbeet a44dfc58ab d2d1: Implement d2d_d3d_render_target_DrawGlyphRun(). 2015-07-09 23:18:00 +09:00
Henri Verbeet 1fd0cf680f d2d1: Implement d2d_text_renderer_DrawGlyphRun(). 2015-06-16 16:48:56 +09:00
Henri Verbeet c92d7aff63 d2d1: Do not flip/mirror the rectangle in d2d_d3d_render_target_FillRectangle(). 2015-04-29 12:24:28 +09:00
Henri Verbeet b313680ab4 d2d1: Take scaling into account for the source offset in d2d_d3d_render_target_DrawBitmap(). 2015-04-24 14:29:43 +09:00
Henri Verbeet 4b3ca58fe9 d2d1: Do not flip/mirror the bitmap in d2d_d3d_render_target_DrawBitmap(). 2015-04-24 14:29:41 +09:00
Henri Verbeet 2af8e243ac d2d1: Add opacity support to bitmap brushes. 2015-04-15 22:21:59 +09:00
Henri Verbeet a7b2f5e889 d2d1: Take the world transform into account when calculating the bitmap brush texcoord transform. 2015-04-15 22:21:59 +09:00
Henri Verbeet efe777c8ac d2d1: Fix a typo in the determinant calculation in d2d_d3d_render_target_FillRectangle(). 2015-03-31 18:49:29 +09:00
Henri Verbeet d9fbb3f847 d2d1: Do not multiply color brush RGB values with the brush opacity. 2015-03-30 19:10:28 +09:00
Henri Verbeet 59e641aa70 d2d1: Implement d2d_d3d_render_target_RestoreDrawingState(). 2015-03-30 19:10:27 +09:00
Henri Verbeet 3f97056424 d2d1: Implement d2d_d3d_render_target_SaveDrawingState(). 2015-03-30 19:10:27 +09:00
Henri Verbeet 70883bb0a2 d2d1: Use a D2D1_DRAWING_STATE_DESCRIPTION structure to store render target drawing state. 2015-03-27 20:40:37 +09:00
Henri Verbeet fd4b0532d0 d2d1: Implement d2d_d3d_render_target_GetTags(). 2015-03-27 20:40:37 +09:00
Henri Verbeet e52cf640e6 d2d1: Implement d2d_d3d_render_target_SetTags(). 2015-03-27 20:40:37 +09:00
Henri Verbeet 2f529b1255 d2d1: Implement d2d_d3d_render_target_GetTextAntialiasMode(). 2015-03-27 20:40:37 +09:00
Henri Verbeet 345dbdc77f d2d1: Implement d2d_d3d_render_target_SetTextAntialiasMode(). 2015-03-27 20:40:36 +09:00
Henri Verbeet cef9434cb2 d2d1: Implement d2d_d3d_render_target_GetAntialiasMode(). 2015-03-27 00:11:59 +09:00
Henri Verbeet b231013f03 d2d1: Implement d2d_d3d_render_target_SetAntialiasMode(). 2015-03-27 00:11:56 +09:00
Henri Verbeet 845103c7dd d2d1: Implement d2d_d3d_render_target_GetTextRenderingParams(). 2015-03-27 00:11:52 +09:00
Henri Verbeet 060d2230fc d2d1: Implement d2d_d3d_render_target_SetTextRenderingParams(). 2015-03-27 00:11:49 +09:00
Henri Verbeet 237a0ada00 d2d1: Implement d2d_d3d_render_target_GetFactory(). 2015-03-27 00:11:46 +09:00
Henri Verbeet f87b0ce4d7 d2d1: Properly take the source offset into account in d2d_d3d_render_target_DrawBitmap(). 2015-03-25 19:46:07 +09:00
Henri Verbeet 2f2e1b98fd d2d1: Implement d2d_d3d_render_target_DrawBitmap(). 2015-02-06 22:20:24 +09:00
Henri Verbeet 287f751ae2 d2d1: Implement bitmap brush support for d2d_d3d_render_target_FillRectangle(). 2015-02-06 22:20:22 +09:00
Henri Verbeet 0cb8722837 d2d1: Implement d2d_d3d_render_target_CreateBitmapBrush(). 2014-12-01 11:00:24 +01:00
Henri Verbeet ac4bd550a5 d2d1: Make "transform" in d2d_d3d_render_target_Clear() const. 2014-12-01 11:00:23 +01:00
Henri Verbeet 743d80fea5 d2d1: Implement d2d_solid_color_brush_SetOpacity(). 2014-11-06 23:47:09 +09:00
Henri Verbeet 7a72eb2dcd d2d1: Add an initial d2d_d3d_render_target_FillRectangle() implementation. 2014-11-06 23:47:06 +09:00
Henri Verbeet 8db1df5097 d2d1: Implement d2d_gradient_GetGradientStops(). 2014-11-03 20:31:52 +09:00
Francois Gouget 9f8d221869 d2d1: Make the IDWriteTextRenderer methods static. 2014-10-07 20:22:11 +02:00
Henri Verbeet 0d962da9d3 d2d1: Implement d2d_d3d_render_target_DrawTextLayout(). 2014-10-06 17:35:07 +02:00
Henri Verbeet 4e73cd517a d2d1: Implement d2d_d3d_render_target_CreateBitmapFromWicBitmap(). 2014-09-16 12:24:38 +02:00
Henri Verbeet 76dd63e422 d2d1: Implement d2d_d3d_render_target_CreateBitmap(). 2014-09-16 12:24:34 +02:00
Henri Verbeet be415203c7 d2d1: Implement d2d_d3d_render_target_CreateMesh(). 2014-09-16 12:24:22 +02:00
Henri Verbeet 240c454089 d2d1: Simplify clip stack handling. 2014-09-15 12:12:36 +02:00
Henri Verbeet a49fbeb841 d2d1: Implement initial clipping support. 2014-09-08 11:36:00 +02:00
Henri Verbeet e2c7b442a1 d2d1: Implement d2d_d3d_render_target_Clear().
This is of course a fairly naive initial implementation. We'd probably want to
batch up drawing operations, and only execute them on EndDraw() or Flush() to
reduce state setup overhead.
2014-09-08 11:35:57 +02:00
Henri Verbeet 92a1ede37f d2d1: Implement d2d_d3d_render_target_GetSize(). 2014-09-08 11:35:45 +02:00
Henri Verbeet fabfa59aea widl: Handle aggregate returns in a MSVC compatible way.
Aggregates are returned through an implicit parameter after the this/interface
pointer. Note that this follows the C++ convention, affected methods are not
callable from C with the Microsoft headers.
2014-09-08 11:34:05 +02:00
Henri Verbeet a64a3c8238 d2d1: Implement d2d_d3d_render_target_SetDpi(). 2014-09-04 20:21:03 +02:00
Henri Verbeet 3e2a7493e0 d2d1: Implement d2d_d3d_render_target_GetDpi(). 2014-09-04 20:21:03 +02:00
Henri Verbeet 5295edbd3a d2d1: Implement d2d_d3d_render_target_GetPixelSize(). 2014-09-03 11:22:33 +02:00
Henri Verbeet 53d0c20526 d2d1: Implement d2d_d3d_render_target_EndDraw().
Tag1/tag2 are "error tags". You set them with SetTags(), and if a subsequent
drawing operation generates an error, EndDraw() will return the error code and
tags that were set when the error occurred.
2014-09-03 11:22:31 +02:00
Henri Verbeet 5981ddab4d d2d1: Get rid of a FIXME in d2d_d3d_render_target_BeginDraw(). 2014-09-03 11:22:27 +02:00
Henri Verbeet 7976da345a d2d1: Implement d2d_d3d_render_target_SetTransform(). 2014-07-22 12:37:35 +02:00
Henri Verbeet 952b2575fd d2d1: Implement d2d_d3d_render_target_GetTransform(). 2014-07-22 12:37:31 +02:00
Henri Verbeet 8583fc4a6c d2d1: Implement d2d_d3d_render_target_CreateLinearGradientBrush(). 2014-06-17 10:37:35 +02:00
Henri Verbeet 22a20e4016 d2d1: Implement d2d_d3d_render_target_CreateGradientStopCollection(). 2014-06-17 10:37:33 +02:00
Henri Verbeet cfde833140 d2d1: Implement d2d_d3d_render_target_CreateSolidColorBrush(). 2014-06-17 10:37:31 +02:00
Henri Verbeet 53d1bbf041 d2d1: Implement d2d_factory_CreateDxgiSurfaceRenderTarget(). 2014-05-20 09:44:13 +02:00