1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/**
* Creates the NSOpenGLLayer for FBO/PBuffer w/ optional GL3 shader program on Main-Thread
* <p>
* It is mandatory that the shared context handle <code>ctx</code>
* is not locked while calling this method.
* </p>
* <p>
* The NSOpenGLLayer starts in enabled mode,
* you may enable/disable it via {@link #setNSOpenGLLayerEnabled(long, boolean)}.
* </p>
*/
public static long createNSOpenGLLayer(final long ctx, final int gl3ShaderProgramName, final long fmt, final long p,
final int texID, final boolean opaque, final int texWidth, final int texHeight) {
return OSXUtil.RunOnMainThread(true, new Function<Long, Object>() {
public Long eval(Object... args) {
return Long.valueOf( createNSOpenGLLayerImpl(ctx, gl3ShaderProgramName, fmt, p, texID, opaque, texWidth, texHeight) );
} } ).longValue();
}
/**
* Enable or disable NSOpenGLLayer.
*
* <p>
* If disabled, the NSOpenGLLayer will not be displayed, i.e. rendered.
* </p>
*/
public static void setNSOpenGLLayerEnabled(final long nsOpenGLLayer, final boolean enable) {
OSXUtil.RunOnMainThread(true, new Runnable() {
public void run() {
setNSOpenGLLayerEnabledImpl(nsOpenGLLayer, enable);
} } );
}
/**
* Releases the NSOpenGLLayer on Main-Thread
*/
public static void releaseNSOpenGLLayer(final long nsOpenGLLayer) {
OSXUtil.RunOnMainThread(true, new Runnable() {
public void run() {
releaseNSOpenGLLayerImpl(nsOpenGLLayer);
} } );
}
|