Panda3D
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
CallbackGraphicsWindow Class Reference

This special window object doesn't represent a window in its own right, but instead hooks into some third-party API for creating and rendering to windows via callbacks. More...

#include "callbackGraphicsWindow.h"

Inheritance diagram for CallbackGraphicsWindow:
GraphicsWindow GraphicsOutput GraphicsOutputBase DrawableRegion TypedWritableReferenceCount TypedWritable ReferenceCount TypedObject MemoryBase MemoryBase

Classes

class  EventsCallbackData
 
class  PropertiesCallbackData
 
class  RenderCallbackData
 
class  WindowCallbackData
 

Public Types

enum  RenderCallbackType { RCT_begin_frame, RCT_end_frame, RCT_begin_flip, RCT_end_flip }
 
- Public Types inherited from GraphicsOutput
enum  FrameMode { FM_render, FM_parasite, FM_refresh }
 
enum  RenderTextureMode {
  RTM_none, RTM_bind_or_copy, RTM_copy_texture, RTM_copy_ram,
  RTM_triggered_copy_texture, RTM_triggered_copy_ram, RTM_bind_layered
}
 
- Public Types inherited from DrawableRegion
enum  RenderTexturePlane {
  RTP_stencil =0, RTP_depth_stencil =1, RTP_color, RTP_aux_rgba_0,
  RTP_aux_rgba_1, RTP_aux_rgba_2, RTP_aux_rgba_3, RTP_aux_hrgba_0,
  RTP_aux_hrgba_1, RTP_aux_hrgba_2, RTP_aux_hrgba_3, RTP_aux_float_0,
  RTP_aux_float_1, RTP_aux_float_2, RTP_aux_float_3, RTP_depth,
  RTP_COUNT
}
 

Public Member Functions

virtual void begin_flip ()
 This function will be called within the draw thread after end_frame() has been called on all windows, to initiate the exchange of the front and back buffers. More...
 
virtual bool begin_frame (FrameMode mode, Thread *current_thread)
 This function will be called within the draw thread before beginning rendering for a given frame. More...
 
void clear_events_callback ()
 Removes the callback set by an earlier call to set_events_callback(). More...
 
void clear_properties_callback ()
 Removes the callback set by an earlier call to set_properties_callback(). More...
 
void clear_render_callback ()
 Removes the callback set by an earlier call to set_render_callback(). More...
 
int create_input_device (const std::string &name)
 Adds a new input device (mouse) to the window with the indicated name. More...
 
virtual void end_flip ()
 This function will be called within the draw thread after begin_flip() has been called on all windows, to finish the exchange of the front and back buffers. More...
 
virtual void end_frame (FrameMode mode, Thread *current_thread)
 This function will be called within the draw thread after rendering is completed for a given frame. More...
 
virtual TypeHandle force_init_type ()
 
CallbackObjectget_events_callback () const
 Returns the CallbackObject set by set_events_callback(). More...
 
CallbackObjectget_properties_callback () const
 Returns the CallbackObject set by set_properties_callback(). More...
 
CallbackObjectget_render_callback () const
 Returns the CallbackObject set by set_render_callback(). More...
 
virtual TypeHandle get_type () const
 
virtual void process_events ()
 Do whatever processing is necessary to ensure that the window responds to user events. More...
 
void set_events_callback (CallbackObject *object)
 Sets the CallbackObject that will be notified when this window is polled for window events, including mouse and keyboard events, as well as window resize events and other system-generated events. More...
 
void set_properties_callback (CallbackObject *object)
 Sets the CallbackObject that will be notified when this window receives a property change request from user code (e.g. More...
 
virtual void set_properties_now (WindowProperties &properties)
 Applies the requested set of properties to the window, if possible, for instance to request a change in size or minimization status. More...
 
void set_render_callback (CallbackObject *object)
 Sets the CallbackObject that will be notified when this window is invoked (in the draw thread) to render its contents, and/or flip the graphics buffers. More...
 
- Public Member Functions inherited from GraphicsWindow
virtual void add_window_proc (const GraphicsWindowProc *wnd_proc_object)
 
void clear_rejected_properties ()
 Empties the set of failed properties that will be returned by get_rejected_properties(). More...
 
virtual void clear_window_procs ()
 
virtual void close_ime ()
 Forces the ime window to close if any. More...
 
void disable_pointer_events (int device)
 Turn off the generation of pointer events. More...
 
void enable_pointer_events (int device)
 Turn on the generation of pointer events. More...
 
std::string get_close_request_event () const
 
InputDeviceget_input_device (int i) const
 
std::string get_input_device_name (int device) const
 
virtual ButtonMapget_keyboard_map () const
 Returns a ButtonMap containing the association between raw buttons and virtual buttons. More...
 
int get_num_input_devices () const
 
virtual int get_num_touches ()
 Returns the current number of touches on this window. More...
 
virtual MouseData get_pointer (int device) const
 See GraphicsWindowInputDevice::enable_pointer_mode. More...
 
const WindowProperties get_properties () const
 
WindowProperties get_rejected_properties () const
 
const WindowProperties get_requested_properties () const
 
virtual TouchInfo get_touch_info (int index)
 Returns the TouchInfo object describing the specified touch. More...
 
bool get_unexposed_draw () const
 
std::string get_window_event () const
 
WindowHandleget_window_handle () const
 
bool has_keyboard (int device) const
 Returns true if the nth input device has a keyboard, false otherwise. More...
 
bool has_pointer (int device) const
 Returns true if the nth input device has a screen-space pointer (for instance, a mouse), false otherwise. More...
 
virtual bool is_active () const
 Returns true if the window is ready to be rendered into, false otherwise. More...
 
bool is_closed () const
 
bool is_fullscreen () const
 Returns true if the window has been opened as a fullscreen window, false otherwise. More...
 
virtual bool is_touch_event (GraphicsWindowProcCallbackData *callbackData)
 Returns whether the specified event msg is a touch message. More...
 
virtual bool move_pointer (int device, int x, int y)
 Forces the pointer to the indicated position within the window, if possible. More...
 
virtual void remove_window_proc (const GraphicsWindowProc *wnd_proc_object)
 
virtual void request_close ()
 This is called by the GraphicsEngine to request that the window (or whatever) close itself or, in general, make itself invalid, at the next call to process_events(). More...
 
virtual void request_open ()
 This is called by the GraphicsEngine to request that the window (or whatever) open itself or, in general, make itself valid, at the next call to process_events(). More...
 
void request_properties (const WindowProperties &requested_properties)
 Requests a property change on the window. More...
 
virtual void set_close_now ()
 This is called by the GraphicsEngine to insist that the window be closed immediately. More...
 
void set_close_request_event (const std::string &close_request_event)
 
void set_unexposed_draw (bool unexposed_draw)
 
void set_window_event (const std::string &window_event)
 
virtual bool supports_window_procs () const
 Returns whether this window supports adding of Windows proc handlers. More...
 
virtual int verify_window_sizes (int numsizes, int *dimen)
 Determines which of the indicated window sizes are supported by available hardware (e.g. More...
 
- Public Member Functions inherited from GraphicsOutput
void add_render_texture (Texture *tex, RenderTextureMode mode, RenderTexturePlane bitplane=RTP_COUNT)
 Creates a new Texture object, suitable for rendering the contents of this buffer into, and appends it to the list of render textures. More...
 
void change_scenes (DisplayRegionPipelineReader *new_dr)
 Called by the GraphicsEngine when the window is about to change to another DisplayRegion. More...
 
virtual void clear (Thread *current_thread)
 Clears the entire framebuffer before rendering, according to the settings of get_color_clear_active() and get_depth_clear_active() (inherited from DrawableRegion). More...
 
void clear_child_sort ()
 Resets the sort value of future offscreen buffers created by make_texture_sort() to the default value. More...
 
void clear_delete_flag ()
 Resets the delete flag, so the GraphicsOutput will not be automatically deleted before the beginning of the next frame. More...
 
virtual void clear_pipe ()
 Sets the window's _pipe pointer to NULL; this is generally called only as a precursor to deleting the window. More...
 
void clear_render_textures ()
 If the GraphicsOutput is currently rendering to a texture, then all textures are dissociated from the GraphicsOuput. More...
 
int count_textures () const
 If the GraphicsOutput is set to render into a texture, returns the number of textures that are being rendered into. More...
 
virtual bool flip_ready () const
 Returns true if a frame has been rendered and needs to be flipped, false otherwise. More...
 
int get_child_sort () const
 
PStatCollectorget_clear_window_pcollector ()
 Returns a PStatCollector for timing the clear operation for just this GraphicsOutput. More...
 
PStatCollectorget_cull_window_pcollector ()
 Returns a PStatCollector for timing the cull operation for just this GraphicsOutput. More...
 
bool get_delete_flag () const
 Returns the current setting of the delete flag. More...
 
PStatCollectorget_draw_window_pcollector ()
 Returns a PStatCollector for timing the draw operation for just this GraphicsOutput. More...
 
GraphicsEngineget_engine () const
 
const FrameBufferPropertiesget_fb_properties () const
 Returns the framebuffer properties of the window. More...
 
LVecBase2i get_fb_size () const
 
int get_fb_x_size () const
 Returns the internal width of the window or buffer. More...
 
int get_fb_y_size () const
 Returns the internal height of the window or buffer. More...
 
GraphicsStateGuardianget_gsg () const
 
virtual GraphicsOutputget_host ()
 This is normally called only from within make_texture_buffer(). More...
 
bool get_inverted () const
 
unsigned int get_left_eye_color_mask () const
 Returns the color mask in effect when rendering a left-eye view in red_blue stereo mode. More...
 
const std::string & get_name () const
 
int get_num_active_display_regions () const
 
int get_num_display_regions () const
 
bool get_one_shot () const
 
DisplayRegionget_overlay_display_region () const
 Returns the special "overlay" DisplayRegion that is created for each window or buffer. More...
 
GraphicsPipeget_pipe () const
 
bool get_red_blue_stereo () const
 Returns whether red-blue stereo mode is in effect for this particular window. More...
 
unsigned int get_right_eye_color_mask () const
 Returns the color mask in effect when rendering a right-eye view in red_blue stereo mode. More...
 
RenderTextureMode get_rtm_mode (int i=0) const
 Returns the RenderTextureMode associated with the nth render-texture. More...
 
const LVecBase4 & get_sbs_left_dimensions () const
 Returns the effective sub-region of the window for displaying the left channel, if side-by-side stereo mode is in effect for the window. More...
 
LVecBase2i get_sbs_left_size () const
 
int get_sbs_left_x_size () const
 If side-by-side stereo is enabled, this returns the pixel width of the left eye, based on scaling get_x_size() by get_sbs_left_dimensions(). More...
 
int get_sbs_left_y_size () const
 If side-by-side stereo is enabled, this returns the pixel height of the left eye, based on scaling get_y_size() by get_sbs_left_dimensions(). More...
 
const LVecBase4 & get_sbs_right_dimensions () const
 Returns the effective sub-region of the window for displaying the right channel, if side-by-side stereo mode is in effect for the window. More...
 
LVecBase2i get_sbs_right_size () const
 
int get_sbs_right_x_size () const
 If side-by-side stereo is enabled, this returns the pixel width of the right eye, based on scaling get_x_size() by get_sbs_right_dimensions(). More...
 
int get_sbs_right_y_size () const
 If side-by-side stereo is enabled, this returns the pixel height of the right eye, based on scaling get_y_size() by get_sbs_right_dimensions(). More...
 
bool get_screenshot (PNMImage &image)
 Captures the most-recently rendered image from the framebuffer into the indicated PNMImage. More...
 
bool get_side_by_side_stereo () const
 Returns whether side-by-side stereo mode is in effect for this particular window. More...
 
const LVecBase2i & get_size () const
 
int get_sort () const
 
virtual bool get_supports_render_texture () const
 
bool get_swap_eyes () const
 
virtual Textureget_texture (int i=0) const
 Returns the nth texture into which the GraphicsOutput renders. More...
 
NodePath get_texture_card ()
 Returns a PandaNode containing a square polygon. More...
 
RenderTexturePlane get_texture_plane (int i=0) const
 Returns the RenderTexturePlane associated with the nth render-texture. More...
 
int get_x_size () const
 Returns the visible width of the window or buffer, if it is known. More...
 
int get_y_size () const
 Returns the visible height of the window or buffer, if it is known. More...
 
bool has_size () const
 Returns true if the size of the window/frame buffer is known, false otherwise. More...
 
bool has_texture () const
 Returns true if the GraphicsOutput is rendering into any textures at all. More...
 
bool is_nonzero_size () const
 Returns true if the output has a nonzero size in both X and Y, or false if it is zero (and therefore invalid). More...
 
bool is_stereo () const
 Returns Returns true if this window can render stereo DisplayRegions, either through red-blue stereo (see set_red_blue_stereo()) or through true hardware stereo rendering. More...
 
bool is_valid () const
 Returns true if the output is fully created and ready for rendering, false otherwise. More...
 
GraphicsOutputmake_cube_map (const std::string &name, int size, NodePath &camera_rig, DrawMask camera_mask=PandaNode::get_all_camera_mask(), bool to_ram=false, FrameBufferProperties *fbp=nullptr)
 This is similar to make_texture_buffer() in that it allocates a separate buffer suitable for rendering to a texture that can be assigned to geometry in this window, but in this case, the buffer is set up to render the six faces of a cube map. More...
 
DisplayRegionmake_display_region ()
 Creates a new DisplayRegion that covers the entire window. More...
 
DisplayRegionmake_display_region (PN_stdfloat l, PN_stdfloat r, PN_stdfloat b, PN_stdfloat t)
 Creates a new DisplayRegion that covers the indicated sub-rectangle within the window. More...
 
DisplayRegionmake_display_region (const LVecBase4 &dimensions)
 Creates a new DisplayRegion that covers the indicated sub-rectangle within the window. More...
 
DisplayRegionmake_mono_display_region ()
 Creates a new DisplayRegion that covers the entire window. More...
 
DisplayRegionmake_mono_display_region (PN_stdfloat l, PN_stdfloat r, PN_stdfloat b, PN_stdfloat t)
 Creates a new DisplayRegion that covers the entire window. More...
 
DisplayRegionmake_mono_display_region (const LVecBase4 &dimensions)
 Creates a new DisplayRegion that covers the indicated sub-rectangle within the window. More...
 
StereoDisplayRegionmake_stereo_display_region ()
 Creates a new DisplayRegion that covers the entire window. More...
 
StereoDisplayRegionmake_stereo_display_region (PN_stdfloat l, PN_stdfloat r, PN_stdfloat b, PN_stdfloat t)
 Creates a new DisplayRegion that covers the entire window. More...
 
StereoDisplayRegionmake_stereo_display_region (const LVecBase4 &dimensions)
 Creates a new DisplayRegion that covers the indicated sub-rectangle within the window. More...
 
GraphicsOutputmake_texture_buffer (const std::string &name, int x_size, int y_size, Texture *tex=nullptr, bool to_ram=false, FrameBufferProperties *fbp=nullptr)
 
bool operator< (const GraphicsOutput &other) const
 The sorting operator is used to order the GraphicsOutput object in order by their sort number, so that they will render in the correct order in the GraphicsEngine. More...
 
 PT (DisplayRegion) get_display_region(int n) const
 
 PT (DisplayRegion) get_active_display_region(int n) const
 
 PT (Texture) get_screenshot()
 
virtual void ready_flip ()
 This function will be called within the draw thread after end_frame() has been called on all windows, to initiate the exchange of the front and back buffers. More...
 
void remove_all_display_regions ()
 Removes all display regions from the window, except the default one that is created with the window. More...
 
bool remove_display_region (DisplayRegion *display_region)
 Removes the indicated DisplayRegion from the window, and destructs it if there are no other references. More...
 
bool save_screenshot (const Filename &filename, const std::string &image_comment="")
 Saves a screenshot of the region to the indicated filename. More...
 
Filename save_screenshot_default (const std::string &prefix="screenshot")
 Saves a screenshot of the region to a default filename, and returns the filename, or empty string if the screenshot failed. More...
 
virtual void select_target_tex_page (int page)
 Called internally when the window is in render-to-a-texture mode and we are in the process of rendering the six faces of a cube map, or any other multi-page texture. More...
 
void set_active (bool active)
 
void set_child_sort (int child_sort)
 
void set_inverted (bool inverted)
 
void set_one_shot (bool one_shot)
 
void set_overlay_display_region (DisplayRegion *display_region)
 Replaces the special "overlay" DisplayRegion that is created for each window or buffer. More...
 
void set_red_blue_stereo (bool red_blue_stereo, unsigned int left_eye_color_mask, unsigned int right_eye_color_mask)
 Enables red-blue stereo mode on this particular window. More...
 
void set_side_by_side_stereo (bool side_by_side_stereo)
 Enables side-by-side stereo mode on this particular window. More...
 
void set_side_by_side_stereo (bool side_by_side_stereo, const LVecBase4 &sbs_left_dimensions, const LVecBase4 &sbs_right_dimensions)
 Enables side-by-side stereo mode on this particular window. More...
 
void set_size_and_recalc (int x, int y)
 Changes the x_size and y_size, then recalculates structures that depend on size. More...
 
virtual void set_sort (int sort)
 
void set_swap_eyes (bool swap_eyes)
 
void setup_render_texture (Texture *tex, bool allow_bind, bool to_ram)
 This is a deprecated interface that made sense back when GraphicsOutputs could only render into one texture at a time. More...
 
virtual bool share_depth_buffer (GraphicsOutput *graphics_output)
 Will attempt to use the depth buffer of the input graphics_output. More...
 
AsyncFuturetrigger_copy ()
 When the GraphicsOutput is in triggered copy mode, this function triggers the copy (at the end of the next frame). More...
 
virtual void unshare_depth_buffer ()
 Discontinue sharing the depth buffer. More...
 
- Public Member Functions inherited from TypedWritableReferenceCount
 TypedWritableReferenceCount (const TypedWritableReferenceCount &copy)
 
virtual ReferenceCountas_reference_count ()
 Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type. More...
 
void operator= (const TypedWritableReferenceCount &copy)
 
- Public Member Functions inherited from TypedWritable
 TypedWritable (const TypedWritable &copy)
 
virtual int complete_pointers (TypedWritable **p_list, BamReader *manager)
 Receives an array of pointers, one for each time manager->read_pointer() was called in fillin(). More...
 
vector_uchar encode_to_bam_stream () const
 Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More...
 
bool encode_to_bam_stream (vector_uchar &data, BamWriter *writer=nullptr) const
 Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More...
 
virtual void fillin (DatagramIterator &scan, BamReader *manager)
 This internal function is intended to be called by each class's make_from_bam() method to read in all of the relevant data from the BamFile for the new object. More...
 
virtual void finalize (BamReader *manager)
 Called by the BamReader to perform any final actions needed for setting up the object after all objects have been read and all pointers have been completed. More...
 
UpdateSeq get_bam_modified () const
 Returns the current bam_modified counter. More...
 
void mark_bam_modified ()
 Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More...
 
void operator= (const TypedWritable &copy)
 
virtual bool require_fully_complete () const
 Some objects require all of their nested pointers to have been completed before the objects themselves can be completed. More...
 
virtual void update_bam_nested (BamWriter *manager)
 Called by the BamWriter when this object has not itself been modified recently, but it should check its nested objects for updates. More...
 
virtual void write_datagram (BamWriter *manager, Datagram &dg)
 Writes the contents of this object to the datagram for shipping out to a Bam file. More...
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)=default
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
const TypedObjectas_typed_object () const
 Returns the object, upcast (if necessary) to a TypedObject pointer. More...
 
int get_best_parent_from_Set (const std::set< int > &) const
 
int get_type_index () const
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
 
bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly. More...
 
bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type. More...
 
TypedObjectoperator= (const TypedObject &copy)=default
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 
WeakReferenceListget_weak_list () const
 Returns the WeakReferenceList associated with this ReferenceCount object. More...
 
bool has_weak_list () const
 Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More...
 
void local_object ()
 This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More...
 
void ref () const
 Explicitly increments the reference count. More...
 
bool ref_if_nonzero () const
 Atomically increases the reference count of this object if it is not zero. More...
 
bool test_ref_count_integrity () const
 Does some easy checks to make sure that the reference count isn't completely bogus. More...
 
bool test_ref_count_nonzero () const
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
 
virtual bool unref () const
 Explicitly decrements the reference count. More...
 
WeakReferenceListweak_ref ()
 Adds the indicated PointerToVoid as a weak reference to this object. More...
 
void weak_unref ()
 Removes the indicated PointerToVoid as a weak reference to this object. More...
 
- Public Member Functions inherited from DrawableRegion
 DrawableRegion (const DrawableRegion &copy)
 
void copy_clear_settings (const DrawableRegion &copy)
 Copies only the clear settings from the other drawable region. More...
 
virtual void disable_clears ()
 Disables both the color and depth clear. More...
 
virtual bool get_clear_active (int n) const
 Gets the clear-active flag for any bitplane. More...
 
const LColor & get_clear_color () const
 
bool get_clear_color_active () const
 Returns the current setting of the flag that indicates whether the color buffer should be cleared every frame. More...
 
PN_stdfloat get_clear_depth () const
 
bool get_clear_depth_active () const
 Returns the current setting of the flag that indicates whether the depth buffer should be cleared every frame. More...
 
unsigned int get_clear_stencil () const
 
bool get_clear_stencil_active () const
 Returns the current setting of the flag that indicates whether the color buffer should be cleared every frame. More...
 
virtual const LColor & get_clear_value (int n) const
 Returns the clear value for any bitplane. More...
 
int get_draw_buffer_type () const
 Returns the RenderBuffer into which the GSG should issue draw commands. More...
 
PN_stdfloat get_pixel_factor () const
 
PN_stdfloat get_pixel_zoom () const
 
int get_screenshot_buffer_type () const
 Returns the RenderBuffer that should be used for capturing screenshots from this particular DrawableRegion. More...
 
virtual bool is_any_clear_active () const
 Returns true if any of the clear types (so far there are just color or depth) have been set active, or false if none of them are active and there is no need to clear. More...
 
void operator= (const DrawableRegion &copy)
 
virtual void set_clear_active (int n, bool clear_aux_active)
 Sets the clear-active flag for any bitplane. More...
 
void set_clear_color (const LColor &color)
 
void set_clear_color_active (bool clear_color_active)
 Toggles the flag that indicates whether the color buffer should be cleared every frame. More...
 
void set_clear_depth (PN_stdfloat depth)
 
void set_clear_depth_active (bool clear_depth_active)
 Toggles the flag that indicates whether the depth buffer should be cleared every frame. More...
 
void set_clear_stencil (unsigned int stencil)
 
void set_clear_stencil_active (bool clear_stencil_active)
 Toggles the flag that indicates whether the stencil buffer should be cleared every frame. More...
 
virtual void set_clear_value (int n, const LColor &clear_value)
 Sets the clear value for any bitplane. More...
 
virtual void set_pixel_zoom (PN_stdfloat pixel_zoom)
 
virtual bool supports_pixel_zoom () const
 Returns true if a call to set_pixel_zoom() will be respected, false if it will be ignored. More...
 

Static Public Member Functions

static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from GraphicsWindow
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from GraphicsOutput
static TypeHandle get_class_type ()
 
static void init_type ()
 
static Filename make_screenshot_filename (const std::string &prefix="screenshot")
 Saves a screenshot of the region to a default filename, and returns the filename, or empty string if the screenshot failed. More...
 
- Static Public Member Functions inherited from GraphicsOutputBase
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from TypedWritableReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 
static PT (TypedWritableReferenceCount) decode_from_bam_stream(vector_uchar data
 
- Static Public Member Functions inherited from TypedWritable
static bool decode_raw_from_bam_stream (TypedWritable *&ptr, ReferenceCount *&ref_ptr, vector_uchar data, BamReader *reader=nullptr)
 Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts the single object on those bytes. More...
 
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from TypedObject
static TypeHandle get_class_type ()
 
static void init_type ()
 This function is declared non-inline to work around a compiler bug in g++ 2.96. More...
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from DrawableRegion
static int get_renderbuffer_type (int plane)
 Returns the RenderBuffer::Type that corresponds to a RenderTexturePlane. More...
 

Friends

class GraphicsEngine
 

Additional Inherited Members

- Public Attributes inherited from GraphicsWindow
 get_close_request_event
 Returns the name of the event set via set_close_request_event(). More...
 
 get_input_device
 Returns the nth input device associated with the window. More...
 
 get_input_device_name
 Returns the name of the nth input device. More...
 
 get_num_input_devices
 Returns the number of separate input devices associated with the window. More...
 
 get_properties
 Returns the current properties of the window. More...
 
 get_rejected_properties
 Returns the set of properties that have recently been requested, but could not be applied to the window for some reason. More...
 
 get_requested_properties
 Returns the properties of the window that are currently requested. More...
 
 get_unexposed_draw
 See set_unexposed_draw(). More...
 
 get_window_event
 Returns the name of the event that is generated when this window is modified externally, e.g. More...
 
 get_window_handle
 Returns the WindowHandle corresponding to this window on the desktop. More...
 
 is_closed
 Returns true if the window has not yet been opened, or has been fully closed, false if it is open. More...
 
 set_close_request_event
 Sets the event that is triggered when the user requests to close the window, e.g. More...
 
 set_unexposed_draw
 If this flag is false, the window is redrawn only after it has received a recent "unexpose" or "draw" event from the underlying windowing systme. More...
 
 set_window_event
 Changes the name of the event that is generated when this window is modified externally, e.g. More...
 
- Public Attributes inherited from GraphicsOutput
 get_active_display_region
 
 get_child_sort
 Returns the sort value of future offscreen buffers created by make_texture_sort(). More...
 
 get_display_region
 
 get_engine
 Returns the graphics engine that created this output. More...
 
 get_fb_size
 Returns the internal size of the window or buffer. More...
 
 get_gsg
 Returns the GSG that is associated with this window. More...
 
 get_inverted
 Returns the current setting of the inverted flag. More...
 
 get_name
 Returns the name that was passed to the GraphicsOutput constructor. More...
 
 get_num_active_display_regions
 
 get_num_display_regions
 Returns the number of DisplayRegions that have been created within the window, active or otherwise. More...
 
 get_one_shot
 Returns the current setting of the one-shot flag. More...
 
 get_pipe
 Returns the GraphicsPipe that this window is associated with. More...
 
 get_sbs_left_size
 If side-by-side stereo is enabled, this returns the pixel size of the left eye, based on scaling get_size() by get_sbs_left_dimensions(). More...
 
 get_sbs_right_size
 If side-by-side stereo is enabled, this returns the pixel size of the right eye, based on scaling get_size() by get_sbs_right_dimensions(). More...
 
 get_size
 Returns the visible size of the window or buffer, if it is known. More...
 
 get_sort
 Returns the sorting order of this particular GraphicsOutput. More...
 
 get_supports_render_texture
 Returns true if this particular GraphicsOutput can render directly into a texture, or false if it must always copy-to-texture at the end of each frame to achieve this effect. More...
 
 get_swap_eyes
 Returns the current setting of the "swap eyes" flag. More...
 
 is_active
 Returns true if the window is ready to be rendered into, false otherwise. More...
 
 set_active
 Sets the active flag associated with the GraphicsOutput. More...
 
 set_child_sort
 Specifies the sort value of future offscreen buffers created by make_texture_sort(). More...
 
 set_inverted
 Changes the current setting of the inverted flag. More...
 
 set_one_shot
 Changes the current setting of the one-shot flag. More...
 
 set_sort
 Adjusts the sorting order of this particular GraphicsOutput, relative to other GraphicsOutputs. More...
 
 set_swap_eyes
 Changes the "swap eyes" flag. More...
 
- Public Attributes inherited from TypedWritableReferenceCount
static BamReaderreader = nullptr)
 
- Public Attributes inherited from TypedObject
 get_type
 
- Public Attributes inherited from ReferenceCount
 get_ref_count
 Returns the current reference count. More...
 
- Public Attributes inherited from DrawableRegion
 get_clear_color
 Returns the current clear color value. More...
 
 get_clear_depth
 Returns the current clear depth value. More...
 
 get_clear_stencil
 Returns the current clear stencil value. More...
 
 get_pixel_factor
 Returns the amount by which the height and width of the region will be scaled internally, based on the zoom factor set by set_pixel_zoom(). More...
 
 get_pixel_zoom
 Returns the value set by set_pixel_zoom(), regardless of whether it is being respected or not. More...
 
 set_clear_color
 Sets the clear color to the indicated value. More...
 
 set_clear_depth
 Sets the clear depth to the indicated value. More...
 
 set_clear_stencil
 Sets the clear stencil to the indicated value. More...
 
 set_pixel_zoom
 Sets the amount by which the pixels of the region are scaled internally when filling the image interally. More...
 
- Static Public Attributes inherited from TypedWritable
static TypedWritable *const Null = nullptr
 

Detailed Description

This special window object doesn't represent a window in its own right, but instead hooks into some third-party API for creating and rendering to windows via callbacks.

This can be used to allow Panda to render into an already-created OpenGL context, for instance.

Definition at line 26 of file callbackGraphicsWindow.h.

Member Function Documentation

◆ begin_flip()

void CallbackGraphicsWindow::begin_flip ( )
virtual

This function will be called within the draw thread after end_frame() has been called on all windows, to initiate the exchange of the front and back buffers.

This should instruct the window to prepare for the flip at the next video sync, but it should not wait.

We have the two separate functions, begin_flip() and end_flip(), to make it easier to flip all of the windows at the same time.

Reimplemented from GraphicsOutput.

Definition at line 125 of file callbackGraphicsWindow.cxx.

◆ begin_frame()

bool CallbackGraphicsWindow::begin_frame ( FrameMode  mode,
Thread current_thread 
)
virtual

This function will be called within the draw thread before beginning rendering for a given frame.

It should do whatever setup is required, and return true if the frame should be rendered, or false if it should be skipped.

Reimplemented from GraphicsOutput.

Definition at line 66 of file callbackGraphicsWindow.cxx.

◆ clear_events_callback()

void CallbackGraphicsWindow::clear_events_callback ( )
inline

Removes the callback set by an earlier call to set_events_callback().

Definition at line 34 of file callbackGraphicsWindow.I.

References set_events_callback().

◆ clear_properties_callback()

void CallbackGraphicsWindow::clear_properties_callback ( )
inline

Removes the callback set by an earlier call to set_properties_callback().

Definition at line 68 of file callbackGraphicsWindow.I.

References set_properties_callback().

◆ clear_render_callback()

void CallbackGraphicsWindow::clear_render_callback ( )
inline

Removes the callback set by an earlier call to set_render_callback().

Definition at line 98 of file callbackGraphicsWindow.I.

References set_render_callback().

◆ create_input_device()

int CallbackGraphicsWindow::create_input_device ( const std::string &  name)

Adds a new input device (mouse) to the window with the indicated name.

Returns the index of the new device.

Definition at line 55 of file callbackGraphicsWindow.cxx.

◆ end_flip()

void CallbackGraphicsWindow::end_flip ( )
virtual

This function will be called within the draw thread after begin_flip() has been called on all windows, to finish the exchange of the front and back buffers.

This should cause the window to wait for the flip, if necessary.

Reimplemented from GraphicsOutput.

Definition at line 142 of file callbackGraphicsWindow.cxx.

◆ end_frame()

void CallbackGraphicsWindow::end_frame ( FrameMode  mode,
Thread current_thread 
)
virtual

This function will be called within the draw thread after rendering is completed for a given frame.

It should do whatever finalization is required.

Reimplemented from GraphicsOutput.

Definition at line 92 of file callbackGraphicsWindow.cxx.

◆ get_events_callback()

CallbackObject * CallbackGraphicsWindow::get_events_callback ( ) const
inline

Returns the CallbackObject set by set_events_callback().

Definition at line 42 of file callbackGraphicsWindow.I.

◆ get_properties_callback()

CallbackObject * CallbackGraphicsWindow::get_properties_callback ( ) const
inline

Returns the CallbackObject set by set_properties_callback().

Definition at line 76 of file callbackGraphicsWindow.I.

◆ get_render_callback()

CallbackObject * CallbackGraphicsWindow::get_render_callback ( ) const
inline

Returns the CallbackObject set by set_render_callback().

Definition at line 106 of file callbackGraphicsWindow.I.

◆ process_events()

void CallbackGraphicsWindow::process_events ( )
virtual

Do whatever processing is necessary to ensure that the window responds to user events.

Also, honor any requests recently made via request_properties().

This function is called only within the window thread.

Reimplemented from GraphicsWindow.

Definition at line 159 of file callbackGraphicsWindow.cxx.

◆ set_events_callback()

void CallbackGraphicsWindow::set_events_callback ( CallbackObject object)
inline

Sets the CallbackObject that will be notified when this window is polled for window events, including mouse and keyboard events, as well as window resize events and other system-generated events.

This callback will receive a CallbackGraphicsWindow::EventsCallbackData.

This callback should process any system-generated events, and call data->upcall() to process requested property change requests made via request_properties().

Definition at line 26 of file callbackGraphicsWindow.I.

Referenced by clear_events_callback().

◆ set_properties_callback()

void CallbackGraphicsWindow::set_properties_callback ( CallbackObject object)
inline

Sets the CallbackObject that will be notified when this window receives a property change request from user code (e.g.

via request_properties).

This callback will receive a CallbackGraphicsWindow::PropertiesCallbackData, which provides a get_properties() method that returns a modifiable reference to a WindowsProperties object. This object will contain only those properties requested by user code. The callback should handle any of the requests it finds, including and especially set_open(), and remove them from the object when it has handled them. Any unhandled properties should be left unchanged in the properties object.

Definition at line 60 of file callbackGraphicsWindow.I.

Referenced by clear_properties_callback().

◆ set_properties_now()

void CallbackGraphicsWindow::set_properties_now ( WindowProperties properties)
virtual

Applies the requested set of properties to the window, if possible, for instance to request a change in size or minimization status.

Reimplemented from GraphicsWindow.

Definition at line 173 of file callbackGraphicsWindow.cxx.

◆ set_render_callback()

void CallbackGraphicsWindow::set_render_callback ( CallbackObject object)
inline

Sets the CallbackObject that will be notified when this window is invoked (in the draw thread) to render its contents, and/or flip the graphics buffers.

This callback will actually serve several different functions. It receivces a RenderCallbackData, and you can query data->get_callback_type() to return the actual function of each particular callback.

Definition at line 90 of file callbackGraphicsWindow.I.

Referenced by clear_render_callback().


The documentation for this class was generated from the following files: