14 #ifndef GRAPHICSWINDOW_H 15 #define GRAPHICSWINDOW_H 44 const std::string &name,
56 void clear_rejected_properties();
59 INLINE
bool is_closed()
const;
60 virtual bool is_active()
const;
61 INLINE
bool is_fullscreen()
const;
63 MAKE_PROPERTY(properties, get_properties);
64 MAKE_PROPERTY(requested_properties, get_requested_properties);
65 MAKE_PROPERTY(rejected_properties, get_rejected_properties);
66 MAKE_PROPERTY(closed, is_closed);
68 void set_window_event(
const std::string &window_event);
69 std::string get_window_event()
const;
70 MAKE_PROPERTY(window_event, get_window_event, set_window_event);
72 void set_close_request_event(
const std::string &close_request_event);
73 std::string get_close_request_event()
const;
74 MAKE_PROPERTY(close_request_event, get_close_request_event, set_close_request_event);
76 INLINE
void set_unexposed_draw(
bool unexposed_draw);
77 INLINE
bool get_unexposed_draw()
const;
78 MAKE_PROPERTY(unexposed_draw, get_unexposed_draw, set_unexposed_draw);
81 MAKE_PROPERTY(window_handle, get_window_handle);
84 int get_num_input_devices()
const;
86 std::string get_input_device_name(
int device)
const;
87 MAKE_SEQ(get_input_devices, get_num_input_devices, get_input_device);
88 MAKE_SEQ(get_input_device_names, get_num_input_devices, get_input_device_name);
89 bool has_pointer(
int device)
const;
90 bool has_keyboard(
int device)
const;
91 virtual ButtonMap *get_keyboard_map()
const;
93 void enable_pointer_events(
int device);
94 void disable_pointer_events(
int device);
98 virtual MouseData get_pointer(
int device)
const;
99 virtual bool move_pointer(
int device,
int x,
int y);
100 virtual void close_ime();
105 virtual void clear_window_procs(){};
106 virtual bool supports_window_procs()
const;
108 virtual int verify_window_sizes(
int numsizes,
int *dimen);
111 virtual int get_num_touches();
112 virtual TouchInfo get_touch_info(
int index);
126 virtual void close_window();
127 virtual bool open_window();
130 virtual bool do_reshape_request(
int x_origin,
int y_origin,
bool has_origin,
131 int x_size,
int y_size);
133 virtual void mouse_mode_absolute();
134 virtual void mouse_mode_relative();
139 void system_changed_size(
int x_size,
int y_size);
144 InputDevices _input_devices;
152 bool _got_expose_event;
160 std::string _window_event;
161 std::string _close_request_event;
162 bool _unexposed_draw;
166 PythonWinProcClasses _python_window_proc_classes;
173 static void init_type() {
174 GraphicsOutput::init_type();
176 GraphicsOutput::get_class_type());
179 return get_class_type();
181 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
This specialization on CallbackData is passed when the callback is initiated from from an implementat...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
virtual void request_close()
This is called by the GraphicsEngine to request that the window (or whatever) close itself or,...
This object represents a window on the desktop, not necessarily a Panda window.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
BEGIN_PUBLISH typedef PointerData MouseData
Deprecated alias for PointerData.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A lightweight reentrant mutex.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A window, fullscreen or on a desktop, into which a graphics device sends its output for interactive d...
This is our own Panda specialization on the default STL vector.
virtual void set_close_now()
This is called by the GraphicsEngine to insist that the output be closed immediately.
A container for the various kinds of properties we might ask to have on a graphics window before we o...
virtual void request_open()
This is called by the GraphicsEngine to request that the window (or whatever) open itself or,...
Stores information for a single touch event.
An object to create GraphicsOutputs that share a particular 3-D API.
The default class template does not define any methods.
This is a base class for the various different classes that represent the result of a frame of render...
virtual void process_events()
Do whatever processing in the window thread is appropriate for this output object each frame.
virtual void reset_window(bool swapchain)
Resets the window framebuffer from its derived children.
Defines an interface for storing platform-specific window processor methods.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Encapsulates all the communication with a particular instance of a given rendering backend.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This class is the main interface to controlling the render process.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
TypeHandle is the identifier used to differentiate C++ class types.
A container for the various kinds of properties we might ask to have on a graphics frameBuffer before...
This is a standard, non-reentrant mutex, similar to the Mutex class.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.