Panda3D
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
GraphicsPipe Class Referenceabstract

An object to create GraphicsOutputs that share a particular 3-D API. More...

#include "graphicsPipe.h"

Inheritance diagram for GraphicsPipe:
TypedReferenceCount TypedObject ReferenceCount MemoryBase MemoryBase AndroidGraphicsPipe CocoaGraphicsPipe IPhoneGraphicsPipe osxGraphicsPipe WinGraphicsPipe x11GraphicsPipe wdxGraphicsPipe9 wglGraphicsPipe eglGraphicsPipe glxGraphicsPipe

Public Types

enum  BufferCreationFlags {
  BF_refuse_parasite = 0x0001, BF_require_parasite = 0x0002, BF_refuse_window = 0x0004, BF_require_window = 0x0008,
  BF_require_callback_window = 0x0010, BF_can_bind_color = 0x0040, BF_can_bind_every = 0x0080, BF_resizeable = 0x0100,
  BF_size_track_host = 0x0200, BF_rtt_cumulative = 0x0400, BF_fb_props_optional = 0x0800, BF_size_square = 0x1000,
  BF_size_power_2 = 0x2000, BF_can_bind_layered = 0x4000
}
 
enum  OutputTypes { OT_window = 0x0001, OT_fullscreen_window = 0x0002, OT_buffer = 0x0004, OT_texture_buffer = 0x0008 }
 
enum  PreferredWindowThread { PWT_app, PWT_draw }
 

Public Member Functions

virtual TypeHandle force_init_type ()
 
GraphicsDeviceget_device () const
 Returns a pointer to device object. More...
 
int get_display_height () const
 
DisplayInformationget_display_information ()
 
int get_display_width () const
 
virtual std::string get_interface_name () const =0
 
virtual PreferredWindowThread get_preferred_window_thread () const
 Returns an indication of the thread in which this GraphicsPipe requires its window processing to be performed: typically either the app thread (e.g. More...
 
int get_supported_types () const
 Returns the mask of bits that represents the kinds of GraphicsOutput objects this pipe might be able to successfully create. More...
 
virtual TypeHandle get_type () const
 
bool is_valid () const
 Returns false if this pipe is known to be invalid, meaning that an attempt to create a GraphicsWindow with the pipe will certainly fail. More...
 
virtual void lookup_cpu_data ()
 Looks up the detailed CPU information and stores it in _display_information, if supported by the OS. More...
 
virtual PT (GraphicsDevice) make_device(void *scrn
 
virtual PT (GraphicsStateGuardian) make_callback_gsg(GraphicsEngine *engine)
 
bool supports_type (int flags) const
 A convenience function to ask if a particular type or types of GraphicsObjects are supported. More...
 
- Public Member Functions inherited from TypedReferenceCount
 TypedReferenceCount (const TypedReferenceCount &copy)
 
void operator= (const TypedReferenceCount &copy)
 
- 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...
 

Static Public Member Functions

static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from TypedReferenceCount
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 ()
 

Public Attributes

 get_display_height
 Returns the height of the entire display, if it is known. More...
 
 get_display_information
 Gets the pipe's DisplayInformation. More...
 
 get_display_width
 Returns the width of the entire display, if it is known. More...
 
 get_interface_name
 
- Public Attributes inherited from TypedObject
 get_type
 
- Public Attributes inherited from ReferenceCount
 get_ref_count
 Returns the current reference count. More...
 

Friends

class GraphicsEngine
 

Detailed Description

An object to create GraphicsOutputs that share a particular 3-D API.

Normally, there will only be one GraphicsPipe in an application, although it is possible to have multiple of these at once if there are multiple different API's available in the same machine.

Often, the GraphicsPipe corresponds to a physical output device, hence the term "pipe", but this is not necessarily the case.

The GraphicsPipe is used by the GraphicsEngine object to create and destroy windows; it keeps ownership of the windows it creates.

M. Asad added new/interim functionality where GraphicsPipe now contains a device interface to directx/opengl which will be used to handle multiple windows from same device.

Definition at line 52 of file graphicsPipe.h.

Member Function Documentation

◆ get_device()

GraphicsDevice * GraphicsPipe::get_device ( ) const
inline

Returns a pointer to device object.

Definition at line 81 of file graphicsPipe.I.

◆ get_preferred_window_thread()

GraphicsPipe::PreferredWindowThread GraphicsPipe::get_preferred_window_thread ( ) const
virtual

Returns an indication of the thread in which this GraphicsPipe requires its window processing to be performed: typically either the app thread (e.g.

X) or the draw thread (Windows).

Reimplemented in x11GraphicsPipe, AndroidGraphicsPipe, CocoaGraphicsPipe, IPhoneGraphicsPipe, and osxGraphicsPipe.

Definition at line 219 of file graphicsPipe.cxx.

◆ get_supported_types()

int GraphicsPipe::get_supported_types ( ) const
inline

Returns the mask of bits that represents the kinds of GraphicsOutput objects this pipe might be able to successfully create.

The return value is the union of bits in GraphicsPipe::OutputTypes that represents the set of GraphicsOutput types.

A 1 bit in a particular position is not a guarantee of success, but a 0 bit is a guarantee of failure.

Definition at line 38 of file graphicsPipe.I.

◆ is_valid()

bool GraphicsPipe::is_valid ( ) const
inline

Returns false if this pipe is known to be invalid, meaning that an attempt to create a GraphicsWindow with the pipe will certainly fail.

Returns true if the pipe is probably valid (is this case, an attempt to create a GraphicsWindow should succeed, but might still fail).

Use the GraphicsEngine class to create a GraphicsWindow on a particular pipe.

Definition at line 24 of file graphicsPipe.I.

◆ lookup_cpu_data()

void GraphicsPipe::lookup_cpu_data ( )
virtual

Looks up the detailed CPU information and stores it in _display_information, if supported by the OS.

This may take a second or two.

Reimplemented in WinGraphicsPipe.

Definition at line 291 of file graphicsPipe.cxx.

◆ supports_type()

bool GraphicsPipe::supports_type ( int  flags) const
inline

A convenience function to ask if a particular type or types of GraphicsObjects are supported.

The parameter is a union of one or more bits defined in GrpahicsPipe::OutputTypes.

Returns true if all of the requested types are listed in the supported_types mask, false if any one of them is not. This is not a guarantee that the indicated output type will successfully be created when it is attempted.

Definition at line 53 of file graphicsPipe.I.

Member Data Documentation

◆ get_display_height

int GraphicsPipe::get_display_height
inline

Returns the height of the entire display, if it is known.

This may return 0. See the caveats for get_display_width().

Definition at line 95 of file graphicsPipe.h.

◆ get_display_information

DisplayInformation * GraphicsPipe::get_display_information

Gets the pipe's DisplayInformation.

Definition at line 98 of file graphicsPipe.h.

◆ get_display_width

int GraphicsPipe::get_display_width
inline

Returns the width of the entire display, if it is known.

This may return 0. This is not a guarantee that windows (particularly fullscreen windows) may not be created larger than this width, but it is intended to provide a hint to the application.

Definition at line 94 of file graphicsPipe.h.


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