bool QShivaContext::makeCurrent(ShivaVGWindowSurfacePrivate *surface) { if (currentSurface) currentSurface->isCurrent = false; surface->isCurrent = true; currentSurface = surface; currentSize = surface->size; #if defined(Q_WS_X11) glXMakeCurrent(X11->display, surface->drawable, surface->context); #endif if (!initialized) { if (!vgCreateContextSH(currentSize.width(), currentSize.height())) { qWarning("vgCreateContextSH(%d, %d): could not create context", currentSize.width(), currentSize.height()); return false; } initialized = true; } else { vgResizeSurfaceSH(currentSize.width(), currentSize.height()); } #if defined(QVG_USE_FBO) if (surface->fbo) glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, surface->fbo); else glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); #endif return true; }
void ovg_clear(void){ int x,y,w,h; //get screen dimensions ovg_wininfo(&x,&y,&w,&h); vgResizeSurfaceSH(w,h); //why am i doing this again? ovg_clear_rect(0,0,w,h, C_ABSOLUTE); }
// C function:: void vgResizeSurfaceSH(VGint width, VGint height); JNIEXPORT jint JNICALL Java_com_example_startvg_VG11_vgResizeSurfaceSH( JNIEnv* env, jobject obj, jint width, jint height){ vgResizeSurfaceSH( (VGint) width, (VGint) height ); }
void testReshape(int w, int h) { ReshapeFunc callback = (ReshapeFunc)callbacks[TEST_CALLBACK_RESHAPE]; testW = w; testH = h; vgResizeSurfaceSH(w, h); if (callback) (*callback)(w,h); }