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