53 : shared_orphan_list_(shared_orphan_list)
59 float data[4] = {0.0f, 0.0f, 0.0f, 1.0f};
62 glBufferData(GL_ARRAY_BUFFER,
sizeof(
data),
data, GL_STATIC_DRAW);
63 glBindBuffer(GL_ARRAY_BUFFER, 0);
76 if (default_fbo != 0) {
79 glBindFramebuffer(GL_FRAMEBUFFER, default_fbo);
88 GLboolean supports_stereo_quad_buffer = GL_FALSE;
89 glGetBooleanv(GL_STEREO, &supports_stereo_quad_buffer);
90 if (supports_stereo_quad_buffer) {
211 void GLContext::orphans_clear()
217 if (!orphaned_vertarrays_.
is_empty()) {
218 glDeleteVertexArrays((
uint)orphaned_vertarrays_.
size(), orphaned_vertarrays_.
data());
219 orphaned_vertarrays_.
clear();
221 if (!orphaned_framebuffers_.
is_empty()) {
222 glDeleteFramebuffers((
uint)orphaned_framebuffers_.
size(), orphaned_framebuffers_.
data());
223 orphaned_framebuffers_.
clear();
225 lists_mutex_.unlock();
240 glDeleteVertexArrays(1, &vao_id);
243 orphans_add(orphaned_vertarrays_, lists_mutex_, vao_id);
250 glDeleteFramebuffers(1, &fbo_id);
253 orphans_add(orphaned_framebuffers_, lists_mutex_, fbo_id);
261 glDeleteBuffers(1, &buf_id);
273 glDeleteTextures(1, &tex_id);
294 vao_caches_.add(cache);
295 lists_mutex_.unlock();
301 vao_caches_.remove(cache);
302 lists_mutex_.unlock();
314 if (GLEW_NVX_gpu_memory_info) {
316 glGetIntegerv(GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX, r_total_mem);
317 glGetIntegerv(GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, r_free_mem);
319 else if (GLEW_ATI_meminfo) {
321 glGetIntegerv(GL_TEXTURE_FREE_MEMORY_ATI, stats);
324 *r_free_mem = stats[0];
GHOST C-API function and type declarations.
GHOST_TInt32 GHOST_GetHeightRectangle(GHOST_RectangleHandle rectanglehandle)
void GHOST_DisposeRectangle(GHOST_RectangleHandle rectanglehandle)
GHOST_TInt32 GHOST_GetWidthRectangle(GHOST_RectangleHandle rectanglehandle)
unsigned int GHOST_GetDefaultOpenGLFramebuffer(GHOST_WindowHandle windwHandle)
GHOST_RectangleHandle GHOST_GetClientBounds(GHOST_WindowHandle windowhandle)
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
void append(const T &value)
StateManager * state_manager
FrameBuffer * front_right
bool is_active_on_thread(void)
void size_set(int width, int height)
static GLBackend * get(void)
GLSharedOrphanLists & shared_orphan_list_get(void)
static void buf_free(GLuint buf_id)
void finish(void) override
void flush(void) override
void memory_statistics_get(int *total_mem, int *free_mem) override
void deactivate(void) override
void activate(void) override
GLContext(void *ghost_window, GLSharedOrphanLists &shared_orphan_list)
void vao_cache_unregister(GLVaoCache *cache)
static void tex_free(GLuint tex_id)
void vao_free(GLuint vao_id)
void vao_cache_register(GLVaoCache *cache)
void fbo_free(GLuint fbo_id)
Vector< GLuint > textures