src/macosx/native/sun/java2d/opengl/CGLLayer.m

Print this page




 129     // Call super to finalize the drawing. By default all it does is call glFlush().
 130     [super drawInCGLContext:glContext pixelFormat:pixelFormat forLayerTime:timeInterval displayTime:timeStamp];
 131 
 132     CGLSetCurrentContext(NULL);
 133 }
 134 
 135 @end
 136 
 137 /*
 138  * Class:     sun_java2d_opengl_CGLLayer
 139  * Method:    nativeCreateLayer
 140  * Signature: ()J
 141  */
 142 JNIEXPORT jlong JNICALL
 143 Java_sun_java2d_opengl_CGLLayer_nativeCreateLayer
 144 (JNIEnv *env, jobject obj)
 145 {
 146     __block CGLLayer *layer = nil;
 147 
 148 JNF_COCOA_ENTER(env);
 149 AWT_ASSERT_NOT_APPKIT_THREAD;
 150 
 151     JNFJObjectWrapper *javaLayer = [JNFJObjectWrapper wrapperWithJObject:obj withEnv:env];
 152 
 153     [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
 154         AWT_ASSERT_APPKIT_THREAD;
 155 
 156         layer = [[CGLLayer alloc] initWithJavaLayer: javaLayer];
 157     }];
 158 
 159 JNF_COCOA_EXIT(env);
 160 
 161     return ptr_to_jlong(layer);
 162 }
 163 
 164 // Must be called under the RQ lock.
 165 JNIEXPORT void JNICALL
 166 Java_sun_java2d_opengl_CGLLayer_validate
 167 (JNIEnv *env, jobject obj, jlong layerPtr, jobject surfaceData)
 168 {
 169     CGLLayer *layer = OBJC(layerPtr);
 170 
 171     if (surfaceData != NULL) {
 172         OGLSDOps *oglsdo = (OGLSDOps*) SurfaceData_GetOps(env, surfaceData);
 173         layer.textureID = oglsdo->textureID;


 129     // Call super to finalize the drawing. By default all it does is call glFlush().
 130     [super drawInCGLContext:glContext pixelFormat:pixelFormat forLayerTime:timeInterval displayTime:timeStamp];
 131 
 132     CGLSetCurrentContext(NULL);
 133 }
 134 
 135 @end
 136 
 137 /*
 138  * Class:     sun_java2d_opengl_CGLLayer
 139  * Method:    nativeCreateLayer
 140  * Signature: ()J
 141  */
 142 JNIEXPORT jlong JNICALL
 143 Java_sun_java2d_opengl_CGLLayer_nativeCreateLayer
 144 (JNIEnv *env, jobject obj)
 145 {
 146     __block CGLLayer *layer = nil;
 147 
 148 JNF_COCOA_ENTER(env);

 149 
 150     JNFJObjectWrapper *javaLayer = [JNFJObjectWrapper wrapperWithJObject:obj withEnv:env];
 151 
 152     [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
 153             AWT_ASSERT_APPKIT_THREAD;
 154         
 155             layer = [[CGLLayer alloc] initWithJavaLayer: javaLayer];
 156     }];
 157     
 158 JNF_COCOA_EXIT(env);
 159 
 160     return ptr_to_jlong(layer);
 161 }
 162 
 163 // Must be called under the RQ lock.
 164 JNIEXPORT void JNICALL
 165 Java_sun_java2d_opengl_CGLLayer_validate
 166 (JNIEnv *env, jobject obj, jlong layerPtr, jobject surfaceData)
 167 {
 168     CGLLayer *layer = OBJC(layerPtr);
 169 
 170     if (surfaceData != NULL) {
 171         OGLSDOps *oglsdo = (OGLSDOps*) SurfaceData_GetOps(env, surfaceData);
 172         layer.textureID = oglsdo->textureID;