|
@@ -1356,8 +1356,18 @@ class GlDriver extends Driver {
|
|
override function captureRenderBuffer( pixels : hxd.Pixels ) {
|
|
override function captureRenderBuffer( pixels : hxd.Pixels ) {
|
|
if( curTarget == null )
|
|
if( curTarget == null )
|
|
throw "Can't capture main render buffer in GL";
|
|
throw "Can't capture main render buffer in GL";
|
|
|
|
+ #if js
|
|
|
|
+ var buffer : js.html.ArrayBufferView = @:privateAccess pixels.bytes.b;
|
|
|
|
+ switch( curTarget.format ) {
|
|
|
|
+ case RGBA32F: buffer = new js.html.Float32Array(buffer.buffer);
|
|
|
|
+ case RGBA16F: throw "Not supported";
|
|
|
|
+ default:
|
|
|
|
+ }
|
|
|
|
+ #else
|
|
|
|
+ var buffer = @:privateAccess pixels.bytes.b;
|
|
|
|
+ #end
|
|
#if (js || hl)
|
|
#if (js || hl)
|
|
- gl.readPixels(0, 0, pixels.width, pixels.height, getChannels(curTarget.t), curTarget.t.pixelFmt, @:privateAccess pixels.bytes.b);
|
|
|
|
|
|
+ gl.readPixels(0, 0, pixels.width, pixels.height, getChannels(curTarget.t), curTarget.t.pixelFmt, buffer);
|
|
@:privateAccess pixels.innerFormat = curTarget.format;
|
|
@:privateAccess pixels.innerFormat = curTarget.format;
|
|
#end
|
|
#end
|
|
}
|
|
}
|