# :stopdoc: # This file is automatically generated by the WXRuby3 documentation # generator. Do not alter this file. # :startdoc: module Wx # A memory device context provides a means to draw graphics onto a bitmap. # When drawing in to a mono-bitmap, using {Wx::WHITE}, {Wx::WHITE_PEN} and {Wx::WHITE_BRUSH} will draw the background colour (i.e. 0) whereas all other colours will draw the foreground colour (i.e. 1). # A bitmap must be selected into the new memory DC before it may be used for anything. Typical usage is as follows: # # // Create a memory DC # wxMemoryDC temp_dc; # temp_dc.SelectObject(test_bitmap); # # // We can now draw into the memory DC... # // Copy from this DC to another DC. # old_dc.Blit(250, 50, BITMAP_WIDTH, BITMAP_HEIGHT, temp_dc, 0, 0); # # Note that the memory DC must be deleted (or the bitmap selected out of it) before a bitmap can be reselected into another memory DC. # And, before performing any other operations on the bitmap data, the bitmap must be selected out of the memory DC: # # temp_dc.SelectObject(wxNullBitmap); # # This happens automatically when {Wx::MemoryDC} object goes out of scope. # Note that the scaling factor of the bitmap determines the scaling factor used by this device context, so when using a memory device context as a back buffer for a window, you should typically create the bitmap using the same scale factor as used by the window, e.g. # # void MyWindow::OnPaint(wxPaintEvent&) # { # wxBitmap bmp; # bmp.CreateWithDIPSize(GetClientSize(), GetDPIScaleFactor()); # { # wxMemoryDC memdc(bmp); # ... use memdc to draw on the bitmap ... # } # # wxPaintDC dc(this); # dc.DrawBitmap(bmp, wxPoint(0, 0)); # } # # === # # Category: Device Contexts # @see Wx::Bitmap # @see Wx::DC # # class MemoryDC < DC # @overload initialize() # Constructs a new memory device context. # Use the {Wx::DC#is_ok} member to test whether the constructor was successful in creating a usable device context. Don't forget to select a bitmap into the DC before drawing on it. # @return [MemoryDC] # @overload initialize(dc) # Constructs a new memory device context having the same characteristics as the given existing device context. # This constructor creates a memory device context compatible with dc in {Wx::MSW}, the argument is ignored in the other ports. If dc is NULL, a device context compatible with the screen is created, just as with the default constructor. # @param dc [Wx::DC] # @return [MemoryDC] # @overload initialize(bitmap) # Constructs a new memory device context and calls {Wx::MemoryDC#select_object} with the given bitmap. # Use the {Wx::DC#is_ok} member to test whether the constructor was successful in creating a usable device context. # @param bitmap [Wx::Bitmap] # @return [MemoryDC] def initialize(*args) end # Allow using this device context object to modify the given bitmap contents. # Note that if you need to only use the existing bitmap contents instead of modifying it, you should use {Wx::MemoryDC#select_object_as_source} instead. # Before using the updated bitmap data, make sure to select it out of context first either by selecting {Wx::NULL_BITMAP} into the device context or destroying the device context entirely. # If the bitmap is already selected in this device context, nothing is done. If it is selected in another context, the function asserts and drawing on the bitmap won't work correctly. # @param bitmap [Wx::Bitmap] # @return [void] def select_object(bitmap) end # Selects the given bitmap into the device context, to use as the memory bitmap. # Selecting the bitmap as source into a memory DC allows you to copy its contents to another device context using {Wx::DC#blit}. Note that using {Wx::DC#draw_bitmap} or {Wx::DC#draw_icon} is a simpler way to do the same thing. # Modifying a bitmap selected only as a source may not work correctly and can notably modify the other bitmaps sharing the same data due to the use of reference counting (see Reference Counting). # # If the argument is {Wx::NULL_BITMAP} (or some other uninitialised {Wx::Bitmap}) the current bitmap is selected out of the device context, allowing the current bitmap to be destroyed safely. # @param bitmap [Wx::Bitmap] # @return [void] def select_object_as_source(bitmap) end # @overload get_selected_bitmap() # Get the selected bitmap. # @return [void] # @overload get_selected_bitmap() # @return [Wx::Bitmap] def get_selected_bitmap(*args) end alias_method :selected_bitmap, :get_selected_bitmap end # MemoryDC end