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

Print this page




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


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

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