mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 00:06:44 -04:00
egldisplay: make pbuffers resizeable
This commit is contained in:
parent
21d7a83bfc
commit
f5d5340ad3
@ -120,6 +120,30 @@ end_frame(FrameMode mode, Thread *current_thread) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void eglGraphicsBuffer::
|
||||||
|
set_size(int x, int y) {
|
||||||
|
nassertv_always(_gsg != nullptr);
|
||||||
|
|
||||||
|
if (_size.get_x() != x || _size.get_y() != y) {
|
||||||
|
eglDestroySurface(_egl_display, _pbuffer);
|
||||||
|
|
||||||
|
int attrib_list[] = {
|
||||||
|
EGL_WIDTH, x,
|
||||||
|
EGL_HEIGHT, y,
|
||||||
|
EGL_NONE
|
||||||
|
};
|
||||||
|
|
||||||
|
eglGraphicsStateGuardian *eglgsg;
|
||||||
|
DCAST_INTO_V(eglgsg, _gsg);
|
||||||
|
_pbuffer = eglCreatePbufferSurface(eglgsg->_egl_display, eglgsg->_fbconfig, attrib_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
set_size_and_recalc(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Closes the buffer right now. Called from the window thread.
|
* Closes the buffer right now. Called from the window thread.
|
||||||
*/
|
*/
|
||||||
|
@ -36,6 +36,8 @@ public:
|
|||||||
virtual bool begin_frame(FrameMode mode, Thread *current_thread);
|
virtual bool begin_frame(FrameMode mode, Thread *current_thread);
|
||||||
virtual void end_frame(FrameMode mode, Thread *current_thread);
|
virtual void end_frame(FrameMode mode, Thread *current_thread);
|
||||||
|
|
||||||
|
virtual void set_size(int x, int y);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void close_buffer();
|
virtual void close_buffer();
|
||||||
virtual bool open_buffer();
|
virtual bool open_buffer();
|
||||||
|
@ -323,7 +323,6 @@ make_output(const std::string &name,
|
|||||||
if (retry == 2) {
|
if (retry == 2) {
|
||||||
if (((flags&BF_require_parasite)!=0)||
|
if (((flags&BF_require_parasite)!=0)||
|
||||||
((flags&BF_require_window)!=0)||
|
((flags&BF_require_window)!=0)||
|
||||||
((flags&BF_resizeable)!=0)||
|
|
||||||
((flags&BF_size_track_host)!=0)) {
|
((flags&BF_size_track_host)!=0)) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user