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
|