< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/CGLSurfaceData.m

Print this page




 357                     remoteLayer.target = GL_TEXTURE_2D;
 358                     remoteLayer.textureID = layer.textureID;
 359                     remoteLayer.textureWidth = layer.textureWidth;
 360                     remoteLayer.textureHeight = layer.textureHeight;
 361                     [remoteLayer setNeedsDisplay];
 362                 }
 363 #endif /* REMOTELAYER */
 364             }];
 365         }
 366     }
 367 }
 368 
 369 #pragma mark -
 370 #pragma mark "--- CGLSurfaceData methods ---"
 371 
 372 extern LockFunc        OGLSD_Lock;
 373 extern GetRasInfoFunc  OGLSD_GetRasInfo;
 374 extern UnlockFunc      OGLSD_Unlock;
 375 extern DisposeFunc     OGLSD_Dispose;
 376 












 377 JNIEXPORT void JNICALL
 378 Java_sun_java2d_opengl_CGLSurfaceData_initOps
 379     (JNIEnv *env, jobject cglsd,
 380      jlong pConfigInfo, jlong pPeerData, jlong layerPtr,
 381      jint xoff, jint yoff, jboolean isOpaque)
 382 {
 383     J2dTraceLn(J2D_TRACE_INFO, "CGLSurfaceData_initOps");
 384     J2dTraceLn1(J2D_TRACE_INFO, "  pPeerData=%p", jlong_to_ptr(pPeerData));
 385     J2dTraceLn2(J2D_TRACE_INFO, "  xoff=%d, yoff=%d", (int)xoff, (int)yoff);
 386 
 387     OGLSDOps *oglsdo = (OGLSDOps *)
 388         SurfaceData_InitOps(env, cglsd, sizeof(OGLSDOps));
 389     CGLSDOps *cglsdo = (CGLSDOps *)malloc(sizeof(CGLSDOps));
 390     if (cglsdo == NULL) {
 391         JNU_ThrowOutOfMemoryError(env, "creating native cgl ops");
 392         return;
 393     }
 394 
 395     oglsdo->privOps = cglsdo;
 396 
 397     oglsdo->sdOps.Lock               = OGLSD_Lock;
 398     oglsdo->sdOps.GetRasInfo         = OGLSD_GetRasInfo;
 399     oglsdo->sdOps.Unlock             = OGLSD_Unlock;
 400     oglsdo->sdOps.Dispose            = OGLSD_Dispose;
 401 
 402     oglsdo->drawableType = OGLSD_UNDEFINED;
 403     oglsdo->activeBuffer = GL_FRONT;
 404     oglsdo->needsInit = JNI_TRUE;
 405     oglsdo->xOffset = xoff;
 406     oglsdo->yOffset = yoff;
 407     oglsdo->isOpaque = isOpaque;
 408 
 409     cglsdo->peerData = (AWTView *)jlong_to_ptr(pPeerData);
 410     cglsdo->layer = (CGLLayer *)jlong_to_ptr(layerPtr);
 411     cglsdo->configInfo = (CGLGraphicsConfigInfo *)jlong_to_ptr(pConfigInfo);
 412 
 413     if (cglsdo->configInfo == NULL) {
 414         free(cglsdo);
 415         JNU_ThrowNullPointerException(env, "Config info is null in initOps");
 416     }
 417 }
 418 
 419 JNIEXPORT void JNICALL
 420 Java_sun_java2d_opengl_CGLSurfaceData_clearWindow




 357                     remoteLayer.target = GL_TEXTURE_2D;
 358                     remoteLayer.textureID = layer.textureID;
 359                     remoteLayer.textureWidth = layer.textureWidth;
 360                     remoteLayer.textureHeight = layer.textureHeight;
 361                     [remoteLayer setNeedsDisplay];
 362                 }
 363 #endif /* REMOTELAYER */
 364             }];
 365         }
 366     }
 367 }
 368 
 369 #pragma mark -
 370 #pragma mark "--- CGLSurfaceData methods ---"
 371 
 372 extern LockFunc        OGLSD_Lock;
 373 extern GetRasInfoFunc  OGLSD_GetRasInfo;
 374 extern UnlockFunc      OGLSD_Unlock;
 375 extern DisposeFunc     OGLSD_Dispose;
 376 
 377 
 378 void
 379 CGLSD_Dispose(JNIEnv *env, SurfaceDataOps *ops)
 380 {
 381     OGLSDOps *oglsdo = (OGLSDOps *)ops;
 382     jlong pConfigInfo = OGLSD_GetNativeConfigInfo(oglsdo);
 383     JNU_CallStaticMethodByName(env, NULL, "sun/java2d/opengl/CGLSurfaceData",
 384                                "dispose", "(JJ)V",
 385                                ptr_to_jlong(ops), pConfigInfo);
 386 }
 387 
 388 
 389 JNIEXPORT void JNICALL
 390 Java_sun_java2d_opengl_CGLSurfaceData_initOps
 391     (JNIEnv *env, jobject cglsd,
 392      jlong pConfigInfo, jlong pPeerData, jlong layerPtr,
 393      jint xoff, jint yoff, jboolean isOpaque)
 394 {
 395     J2dTraceLn(J2D_TRACE_INFO, "CGLSurfaceData_initOps");
 396     J2dTraceLn1(J2D_TRACE_INFO, "  pPeerData=%p", jlong_to_ptr(pPeerData));
 397     J2dTraceLn2(J2D_TRACE_INFO, "  xoff=%d, yoff=%d", (int)xoff, (int)yoff);
 398 
 399     OGLSDOps *oglsdo = (OGLSDOps *)
 400         SurfaceData_InitOps(env, cglsd, sizeof(OGLSDOps));
 401     CGLSDOps *cglsdo = (CGLSDOps *)malloc(sizeof(CGLSDOps));
 402     if (cglsdo == NULL) {
 403         JNU_ThrowOutOfMemoryError(env, "creating native cgl ops");
 404         return;
 405     }
 406 
 407     oglsdo->privOps = cglsdo;
 408 
 409     oglsdo->sdOps.Lock               = OGLSD_Lock;
 410     oglsdo->sdOps.GetRasInfo         = OGLSD_GetRasInfo;
 411     oglsdo->sdOps.Unlock             = OGLSD_Unlock;
 412     oglsdo->sdOps.Dispose            = CGLSD_Dispose;
 413 
 414     oglsdo->drawableType = OGLSD_UNDEFINED;
 415     oglsdo->activeBuffer = GL_FRONT;
 416     oglsdo->needsInit = JNI_TRUE;
 417     oglsdo->xOffset = xoff;
 418     oglsdo->yOffset = yoff;
 419     oglsdo->isOpaque = isOpaque;
 420 
 421     cglsdo->peerData = (AWTView *)jlong_to_ptr(pPeerData);
 422     cglsdo->layer = (CGLLayer *)jlong_to_ptr(layerPtr);
 423     cglsdo->configInfo = (CGLGraphicsConfigInfo *)jlong_to_ptr(pConfigInfo);
 424 
 425     if (cglsdo->configInfo == NULL) {
 426         free(cglsdo);
 427         JNU_ThrowNullPointerException(env, "Config info is null in initOps");
 428     }
 429 }
 430 
 431 JNIEXPORT void JNICALL
 432 Java_sun_java2d_opengl_CGLSurfaceData_clearWindow


< prev index next >