Commit Graph

302 Commits

Author SHA1 Message Date
Henri Verbeet 69906b59d8 d2d1: Properly cleanup in d2d_rectangle_geometry_init() failure paths.
This avoids leaking the factory reference in particular.
2015-08-20 20:26:36 +09:00
Henri Verbeet 57eec429c6 d2d1: Implement d2d_text_renderer_DrawInlineObject(). 2015-08-18 18:28:51 +09:00
Henri Verbeet 2474f5e33a d2d1: Implement d2d_bitmap_CopyFromMemory(). 2015-08-18 18:28:49 +09:00
Henri Verbeet 1bea5f44b0 d2d1: Make d2d_geometry_sink_vtbl static const.
Spotted by Francois Gouget.
2015-08-17 22:50:46 +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 d29af2e460 d2d1: Only print a FIXME/WARN for specific properties in d2d_factory_init(). 2015-08-17 22:50:39 +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 d41f568226 d2d1: Get rid of a FIXME in d2d_wic_render_target_init(). 2015-08-13 15:04:10 +09:00
Henri Verbeet 64ccd138a2 d2d1: d2d_bitmap_brush_init() can't fail. 2015-08-13 15:04:08 +09:00
Henri Verbeet 7bdc1ef899 d2d1: Get rid of a FIXME in d2d_bitmap_brush_init(). 2015-08-13 15:04:06 +09:00
Henri Verbeet 7d801d67ed d2d1: Get rid of a FIXME in d2d_solid_color_brush_init().
All properties for solid color brushes are implemented.
2015-08-13 15:04:04 +09:00
Francois Gouget f8a7d6ed74 Assorted spelling fixes. 2015-08-07 23:50:48 +09:00
Henri Verbeet cd59e3db6c d2d1: Implement d2d_d3d_render_target_CreateSharedBitmap(). 2015-08-04 09:45:59 +02:00
Henri Verbeet f0bf9e81fa d2d1: Use the same device for all WIC render targets from the same factory. 2015-08-04 09:45:50 +02:00
Henri Verbeet da47b214cd d2d1: Implement d2d_bitmap_GetFactory(). 2015-08-04 09:45:48 +02:00
Henri Verbeet 91b9ce69b7 d2d1: Implement d2d_gradient_GetFactory(). 2015-08-03 10:56:53 +02:00
Henri Verbeet 4e50527c17 d2d1: Implement d2d_solid_color_brush_GetFactory(). 2015-08-03 10:56:51 +02:00
Henri Verbeet 8b893839bc d2d1: Implement d2d_linear_gradient_brush_GetFactory(). 2015-08-03 10:56:47 +02:00
Henri Verbeet 414d04e27d d2d1: Implement d2d_bitmap_brush_GetFactory(). 2015-08-03 10:56:44 +02:00
Henri Verbeet 47f9f09c73 d2d1: Implement d2d_rectangle_geometry_GetFactory(). 2015-08-03 10:56:22 +02:00
Henri Verbeet 14c0009add d2d1: Implement d2d_path_geometry_GetFactory(). 2015-07-31 12:08:59 +02:00
Henri Verbeet 9745efaf6d d2d1: Implement d2d_mesh_GetFactory(). 2015-07-31 12:08:57 +02:00
Henri Verbeet c1fc008493 d2d1: Implement d2d_state_block_GetFactory(). 2015-07-31 12:08:55 +02:00
Henri Verbeet 68ce000df7 d2d1: Implement d2d_stroke_style_GetFactory(). 2015-07-30 11:39:57 +02:00
Henri Verbeet e5c793e637 d2d1: Don't pass NULL resource data to ID3D10Device_CreateTexture2D(). 2015-07-30 11:39:55 +02:00
Henri Verbeet 4371946d94 d2d1: Fix the TRACE in d2d_bitmap_Release(). 2015-07-30 11:39:53 +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 d742887b7f d2d1: Implement d2d_bitmap_brush_SetBitmap(). 2015-07-29 21:44:02 +02:00
Henri Verbeet a2f41ed5b6 d2d1: Implement d2d_bitmap_GetPixelFormat(). 2015-07-29 21:44:01 +02:00
Henri Verbeet 1b3574ebc0 d2d1: Validate bitmap formats. 2015-07-29 21:44:01 +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 3b400cad34 d2d1: Fix the bitmap DPI scale for bitmap brushes. 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 025c320145 d2d1: Implement d2d_geometry_sink_SetFillMode(). 2015-07-20 11:50:18 +02:00
Henri Verbeet f5b4da0ddd d2d1/tests: Don't call compare_surface() inside ok(). 2015-07-20 11:50:15 +02:00
Henri Verbeet bebee86da6 d2d1: Properly trace "vertex_count" in d2d_path_geometry_triangulate(). 2015-07-15 23:18:45 +09:00
Henri Verbeet a8f45dff60 d2d1: Implement d2d_geometry_sink_AddLines(). 2015-07-14 23:27:22 +09: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 391fda7599 d2d1: Implement d2d_factory_CreateRectangleGeometry(). 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 b108a2ff78 d2d1: Implement d2d_path_geometry_GetSegmentCount(). 2015-07-10 22:23:02 +09:00
Henri Verbeet dfe1486e4b d2d1: Implement d2d_path_geometry_GetFigureCount(). 2015-07-10 22:23:00 +09:00
Henri Verbeet ddec784aee d2d1: Implement d2d_geometry_sink_BeginFigure() and d2d_geometry_sink_EndFigure(). 2015-07-10 22:22:58 +09:00
Henri Verbeet 2f6f8f1242 d2d1: Only allow path geometries to be opened once. 2015-07-10 22:22:56 +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 8b170f0f59 d2d1: Implement d2d_geometry_sink_AddBezier(). 2015-06-16 16:48:54 +09:00
Henri Verbeet 5d5fdbc63b d2d1: Implement d2d_geometry_sink_AddQuadraticBezier(). 2015-06-16 16:48:52 +09:00
Henri Verbeet 95a12f246a d2d1: Implement d2d_geometry_sink_AddLine(). 2015-06-16 16:48:50 +09:00
Henri Verbeet e8d41475b9 d2d1: Implement d2d_path_geometry_Open(). 2015-06-15 22:10:36 +09:00
Henri Verbeet 2b1d3bfb47 d2d1: Implement d2d_factory_CreatePathGeometry(). 2015-06-15 22:10:36 +09:00
Henri Verbeet 7e8c88fa1e d2d1: Fix the ID2D1Factory::CreatePathGeometry() declaration. 2015-06-15 22:10:35 +09:00
Henri Verbeet d3cc27f1d8 d2d1/tests: Add some extend mode tests to test_bitmap_brush(). 2015-04-29 12:24:32 +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 abc84588d2 d2d1: Implement d2d_bitmap_brush_GetExtendModeY(). 2015-04-28 15:34:10 +09:00
Henri Verbeet 0a02f346f6 d2d1: Implement d2d_bitmap_brush_SetExtendModeY(). 2015-04-28 15:34:08 +09:00
Henri Verbeet b940f2fd9e d2d1: Implement d2d_bitmap_brush_GetExtendModeX(). 2015-04-28 15:34:06 +09:00
Henri Verbeet 21a4a10879 d2d1: Implement d2d_bitmap_brush_SetExtendModeX(). 2015-04-28 15:34:03 +09:00
Henri Verbeet 61a40b0d9c d2d1/tests: Add a test for bitmap brushes. 2015-04-27 18:05:20 +09:00
Henri Verbeet 719dfff5bd d2d1: Implement d2d_bitmap_brush_GetInterpolationMode(). 2015-04-27 18:05:17 +09:00
Henri Verbeet 1014d9a105 d2d1: Implement d2d_bitmap_brush_SetInterpolationMode(). 2015-04-27 18:05:15 +09:00
Henri Verbeet 168dd496cb d2d1: Implement d2d_bitmap_brush_GetBitmap(). 2015-04-24 14:29:45 +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 ae7aee3dd6 d2d1/tests: Add a test for color brushes. 2015-03-31 18:49:28 +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 7baf2a0f55 d2d1/tests: Add a test for ID2D1DrawingStateBlock. 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 1b93c01048 d2d1: Implement d2d_state_block_SetDescription(). 2015-03-25 19:46:14 +09:00
Henri Verbeet 95f5dc72a2 d2d1: Implement d2d_state_block_GetDescription(). 2015-03-25 19:46:13 +09:00
Henri Verbeet 29af90be0c d2d1: Implement d2d_state_block_SetTextRenderingParams(). 2015-03-25 19:46:11 +09:00
Henri Verbeet 063080f747 d2d1: Implement d2d_state_block_GetTextRenderingParams(). 2015-03-25 19:46:09 +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 a6409ed027 d2d1: Implement d2d_factory_CreateDrawingStateBlock(). 2015-02-18 23:21:39 +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 7df055f17f d2d1: Implement d2d_bitmap_GetSize(). 2015-02-06 22:20:19 +09:00
Henri Verbeet 4b0f47cdbc d2d1: Implement d2d_bitmap_GetDpi(). 2015-02-06 22:20:17 +09:00
Henri Verbeet b270384dfb d2d1: Implement d2d_bitmap_GetPixelSize(). 2015-02-06 22:20:13 +09:00
Henri Verbeet 81c51768a5 d2d1: Implement d2d_solid_color_brush_SetTransform(). 2015-02-02 22:26:16 +09:00
Henri Verbeet ecca626948 d2d1: Implement d2d_linear_gradient_brush_SetTransform(). 2015-02-02 22:26:14 +09:00
Henri Verbeet fce8603a39 d2d1: Implement d2d_bitmap_brush_SetTransform(). 2015-02-02 22:26:12 +09:00
Henri Verbeet 88edc866ea d2d1: Implement d2d_solid_color_brush_GetTransform(). 2015-02-02 22:26:10 +09:00
Henri Verbeet bbba52dc34 d2d1: Implement d2d_linear_gradient_brush_GetTransform(). 2015-02-02 22:26:07 +09:00
Henri Verbeet d41ee6e574 d2d1: Implement d2d_bitmap_brush_GetTransform(). 2015-02-02 22:26:04 +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 5cc7996b1f d2d1: Implement d2d_solid_color_brush_GetOpacity(). 2014-11-17 19:30:34 +09:00
Henri Verbeet 743d80fea5 d2d1: Implement d2d_solid_color_brush_SetOpacity(). 2014-11-06 23:47:09 +09:00
Henri Verbeet fd8b3ae572 d2d1: Implement d2d_solid_color_brush_GetColor(). 2014-11-06 23:47:08 +09:00
Henri Verbeet 94cd81a45d d2d1: Implement d2d_solid_color_brush_SetColor(). 2014-11-06 23:47:07 +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
Henri Verbeet 5279ad5b9f d2d1: Implement d2d_gradient_GetGradientStopCount(). 2014-11-03 20:31:47 +09:00
Henri Verbeet 56a0e32317 d2d1: Pass the correct vtbl in d2d_linear_gradient_brush_init(). 2014-11-03 20:31:44 +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
Francois Gouget 9f97433641 d2d1: Add a trailing '\n' to a FIXME(). 2014-09-29 10:36:25 +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 c8f758a099 d2d1: Implement d2d_factory_CreateWicBitmapRenderTarget(). 2014-09-15 12:13:50 +02:00
Henri Verbeet 240c454089 d2d1: Simplify clip stack handling. 2014-09-15 12:12:36 +02:00
Henri Verbeet e90b49e2bc d2d1/tests: Add a basic clipping test. 2014-09-08 11:36:20 +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 6944803ccc d2d1: Implement D2D1MakeRotateMatrix(). 2014-07-18 19:13:38 +02:00
Henri Verbeet c903192243 d2d1: Implement d2d_factory_CreateStrokeStyle(). 2014-07-18 19:13:38 +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
Henri Verbeet 089832e6d5 d2d1: Implement D2D1CreateFactory(). 2014-05-20 09:43:40 +02:00
Alexandre Julliard ddfaafc16d d2d1: Remove unnecessary DllMain implementation. 2014-05-16 11:33:40 +02:00
Henri Verbeet 67981d6db7 d2d1: Add a stub D2D1CreateFactory() implementation. 2014-02-18 11:45:20 +01:00