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;
|