Commit Graph

72 Commits

Author SHA1 Message Date
Stefan Csomor
6dfa897b4a Adding a native implementation for clearing bitmap/window contexts
Filling a bitmap surface is filled with ARGB 0,0,0,0. This way eg buffered transparent layers can be properly cleared.
2017-06-25 22:48:58 +02:00
Artur Wieczorek
06963940fb Change current font only if new graphics font is successfully created
If new graphics font couldn't be created successfully there is no need
to reset current font by updating it to wxNullGraphicsFont.

Closes #17790.
2017-04-17 18:57:31 +02:00
Artur Wieczorek
e5b5049cc3 Make wxGraphicsContext::CreateFromUnknownDC() operational also when C++ RTTI is not used
Use wxDynamicCast() to cast to the various wxDC types if wxNO_RTTI is defined.
2017-01-11 20:31:11 +01:00
Václav Slavík
e71be91ebe Add API to create wxGraphicsContext from win32 HDC
Add wxGraphicsContext::CreateFromNativeHDC() and wxGraphicsRenderer::
CreateContextFromNativeHDC() to allow creation not only from native
renderer object, but also from HDC, which is something universally
supported by win32 implementations.
2017-01-06 14:35:09 +01:00
Paul Cornett
5e906d80d8 Fix build with wxNO_RTTI
Since CreateFromUnknownDC() can return NULL anyway, just always define it,
and have it always return NULL with wxNO_RTTI
See #17765
2017-01-01 11:01:49 -08:00
Václav Slavík
7833c65c2a Add wxGraphicsContext::CreateFromUnknownDC()
A convenience helper for writing generic code that may operate on
different kinds of DCs, all supported by wxGraphicsContext, but without
knowing its specific type.
2016-11-22 14:51:39 +01:00
Artur Wieczorek
81d9208424 Optimize adding rounded rectangle to wxGraphicsPath
In AddRoundedRectangle() we know in advance (angle = 90 deg) or can easily determine (center point) parameters of all arcs at the vertices of the rectangle so instead of using AddArcToPoint() function which is generic and hence computationally expensive we can use AddArc() function which implementation is simpler and execution should be faster.
2016-06-05 22:07:16 +02:00
Artur Wieczorek
60ae112694 Fixed adding lines connected with arc (AddArcToPoint) to wxGraphicsPath
Reworked calculations of the center of the arc and start/end angles of the arc to get correct results for any spatial orientation of starting and ending lines.

Closes #17552
2016-05-29 17:41:16 +02:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Vadim Zeitlin
a380c1e46f Add public wxDegToRad() and wxRadToDeg() functions.
Define these functions just once in wx/math.h instead of duplicating them in a
dozen of places.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-17 12:29:15 +00:00
Vadim Zeitlin
6bdf5d357d Initialize wxGraphicsContext::m_interpolation field.
This member wwas never initialized, resulting in erratic behaviour of
SetInterpolationQuality() which compared its parameter with m_interpolation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76299 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-07 20:34:37 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Robin Dunn
8b180bded6 Enable access to the native bitmap object wrapped by wxGraphicsBitmap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-11 22:06:50 +00:00
Vadim Zeitlin
fa378d369f Allow creating wxGraphicsFont without using wxFont.
This is mostly important to allow using wxImage-based wxGraphicsContext
without requiring X server connection under Unix: as wxFont can't be used
without X server, we needed another way to create wxGraphicsFont in this case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-09 22:07:29 +00:00
Vadim Zeitlin
0a470e5ea5 Allow creating wxGraphicsBitmap and wxGraphicsContext from wxImage.
Provide a way to use wxGraphicsContext to draw on wxImage.

This is implemented internally by drawing on wxGraphicsBitmap which can be now
also created from wxImage.

Add a test of the new functionality to the image sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-09 22:07:22 +00:00
Stefan Csomor
ab332136e4 using higher abstraction to allow for optimized implementations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-06 23:23:35 +00:00
Dimitri Schoolwerth
a1b806b982 Replaced Ok() occurrences with IsOk() throughout trunk.
Additionally renamed wxOSX' private wxNativePrinterDC::Ok() function to IsOk().

Didn't deprecate the various Ok() functions: given the amount of changes already introduced in 3.0 a trivial one like this seems more suitable for after 3.0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-03 16:29:04 +00:00
Stefan Csomor
0217cfa537 support generic flag for pixel offsetting, see #11853
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-16 12:21:37 +00:00
Vadim Zeitlin
b129eaa377 Implement wxGraphicsContext::GetSize() for Cairo.
As the implementation of this method is basically the same for all ports move
it to the base class itself instead of requiring the derived classes to
implement it. Now the derived classes need to fill in m_width and m_height
members instead.

Do fill them when creating wxGraphicsContext in Cairo version.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-31 09:38:03 +00:00
Stefan Csomor
29188693b3 bracketing msw enhanced metafile usage
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66514 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-01 11:10:35 +00:00
Vadim Zeitlin
c929ad9141 Correct checks for wxUSE_PRINTING_ARCHITECTURE and wxUSE_ENH_METAFILE.
Compilation fixes for building without one or both of these symbols.

See #12664.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66172 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-16 22:38:32 +00:00
Jaakko Salli
8371a35340 Added wxGraphicsContext::Create(const wxEnhMetaFileDC& dc) so that wxPrintPreview can work with wxMSW's wxGraphicsContext (closes #12028)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-13 08:22:36 +00:00
Vadim Zeitlin
3784bf308f Correct checks for gradient stop position.
It may be <= 1 in the final version and not < 1.

See #11897.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63866 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-06 00:17:16 +00:00
Vadim Zeitlin
4ee4c7b948 Add support for gradient stops to wxGraphicsContext.
Allow specifying a set of gradient stops instead of just the beginning and
ending colours. Add the new wxGraphicsGradientStop(s) classes and new
wxGraphicsContext::Create{Linear,Radial}GradientBrush() overloads. Also change
the same methods of wxGraphicsRenderer to take wxGraphicsGradientStops instead
of a pair of colours.

Implement the new API for MSW and Cairo. OS X still uses just the two colours
for now.

Closes #11897.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63857 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-05 12:15:11 +00:00
Paul Cornett
00491f99f4 remove unused variables, minor cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62788 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-05 19:45:42 +00:00
Vadim Zeitlin
03647350fc No changes, just removed hard tabs and trailing white space.
This commit is huge but there are no non-white-space changes in it.

Some files containing third-party sources (src/msw/wince/time.cpp,
src/x11/pango*.cpp) were left unchanged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-21 10:41:26 +00:00
Kevin Ollivier
2fc9c1ea77 Forward port wxGraphicsBitmap cairo implementation, and fix the credit info in measuring.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-20 23:33:55 +00:00
Stefan Csomor
bf02a7f976 switching to compositing operators (fixes #9881), adding layers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-15 16:52:05 +00:00
Francesco Montorsi
94a007ece4 a few more int/wxPolygonFillMode substitutions in wxRegion and wxGraphicsContext code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-08 16:43:56 +00:00
Francesco Montorsi
89efaf2b65 change generic ints to enums in wxDC (closes #9959)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-08 14:21:53 +00:00
Vadim Zeitlin
0b7dce5480 fix warnings about hiding virtual wxGraphicsContext::DrawText() overloads by using different names for the implementation functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-13 12:16:39 +00:00
Vadim Zeitlin
caa42c43d0 no changes, just deTABbed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-13 12:04:17 +00:00
Robert Roebling
d9468a20c4 #9876 (GC: added sanity check to wxGraphicsPathData::AddEllipse())
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55145 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-21 12:21:14 +00:00
Stefan Csomor
6d0d845548 better guarding when no printing architecture exists (patch from Joel Low)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54869 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-31 06:57:33 +00:00
Robert Roebling
0b822969a6 Added new wxGraphicsContext:Create( wxPrinterDC ) instead of wxDC:CreateGraphicsContext
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-28 20:39:57 +00:00
Robert Roebling
772f15b4d7 Fix linking problem
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53354 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-25 17:20:02 +00:00
Stefan Csomor
9786ef0172 graphics context additions and merging graphics bitmap additions from Kevin O.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-05 21:13:05 +00:00
Stefan Csomor
66bc98cccb moving things to private headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-18 13:23:59 +00:00
Robert Roebling
888dde65f4 DC reorganization
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-30 13:48:22 +00:00
Stefan Csomor
0ad76eea22 cleanup mac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50155 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-22 14:21:36 +00:00
Vadim Zeitlin
c29bdd5ffe fix unused parameters warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-10 00:46:11 +00:00
Stefan Csomor
fcaea2fab9 forward port from 2.8
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49786 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-09 20:39:58 +00:00
Robin Dunn
248802d010 Add wxGraphicsMatrix::Get
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43830 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-12-05 23:42:52 +00:00
Stefan Csomor
4280b8797f adding raster op hook to graphics context
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43761 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-12-03 15:23:42 +00:00
Stefan Csomor
773ccc318e adapting to new inheritance of wxMemoryDC (under MSW only at the moment)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43110 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-06 09:47:20 +00:00
Stefan Csomor
068eb463a4 adding text with background brush
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43046 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-04 17:41:41 +00:00
Stefan Csomor
ad66794547 adding measuring contexts, streamlining printing code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-04 07:50:06 +00:00
Robin Dunn
1ea0eb4e3e Add missing wxNullGraphicsPath
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42596 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-29 02:28:15 +00:00
Stefan Csomor
a4e73390a6 moving path and matrix to refcounting as well, switching filling rule default to odd-even as dc.h does
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-28 13:46:46 +00:00
Robin Dunn
c907796b33 Add missing Contains overload
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-28 02:59:41 +00:00