|
@@ -81,10 +81,10 @@ interface INativeEngine {
|
|
setTexture(uniform: WebGLUniformLocation, texture: Nullable<WebGLTexture>): void;
|
|
setTexture(uniform: WebGLUniformLocation, texture: Nullable<WebGLTexture>): void;
|
|
deleteTexture(texture: Nullable<WebGLTexture>): void;
|
|
deleteTexture(texture: Nullable<WebGLTexture>): void;
|
|
|
|
|
|
- createFrameBuffer(texture: WebGLTexture, width: number, height: number, format: number, samplingMode: number, generateStencilBuffer: boolean, generateDepthBuffer: boolean, generateMipMaps: boolean): WebGLFramebuffer;
|
|
|
|
- deleteFrameBuffer(frameBuffer: WebGLFramebuffer): void;
|
|
|
|
- bindFrameBuffer(frameBuffer: WebGLFramebuffer): void;
|
|
|
|
- unbindFrameBuffer(frameBuffer: WebGLFramebuffer): void;
|
|
|
|
|
|
+ createFramebuffer(texture: WebGLTexture, width: number, height: number, format: number, samplingMode: number, generateStencilBuffer: boolean, generateDepthBuffer: boolean, generateMipMaps: boolean): WebGLFramebuffer;
|
|
|
|
+ deleteFramebuffer(framebuffer: WebGLFramebuffer): void;
|
|
|
|
+ bindFramebuffer(framebuffer: WebGLFramebuffer): void;
|
|
|
|
+ unbindFramebuffer(framebuffer: WebGLFramebuffer): void;
|
|
|
|
|
|
drawIndexed(fillMode: number, indexStart: number, indexCount: number): void;
|
|
drawIndexed(fillMode: number, indexStart: number, indexCount: number): void;
|
|
draw(fillMode: number, vertexStart: number, vertexCount: number): void;
|
|
draw(fillMode: number, vertexStart: number, vertexCount: number): void;
|
|
@@ -158,6 +158,16 @@ class NativeTextureFormat {
|
|
public static readonly RGBA32F = 1;
|
|
public static readonly RGBA32F = 1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+class NativeTexture extends InternalTexture {
|
|
|
|
+ public getInternalTexture(): InternalTexture {
|
|
|
|
+ return this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public getViewCount(): number {
|
|
|
|
+ return 1;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
/** @hidden */
|
|
/** @hidden */
|
|
declare var nativeEngine: INativeEngine;
|
|
declare var nativeEngine: INativeEngine;
|
|
|
|
|
|
@@ -1109,7 +1119,7 @@ export class NativeEngine extends Engine {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public createRenderTargetTexture(size: number | { width: number, height: number }, options: boolean | RenderTargetCreationOptions): InternalTexture {
|
|
|
|
|
|
+ public createRenderTargetTexture(size: number | { width: number, height: number }, options: boolean | RenderTargetCreationOptions): NativeTexture {
|
|
let fullOptions = new RenderTargetCreationOptions();
|
|
let fullOptions = new RenderTargetCreationOptions();
|
|
|
|
|
|
if (options !== undefined && typeof options === "object") {
|
|
if (options !== undefined && typeof options === "object") {
|
|
@@ -1136,7 +1146,7 @@ export class NativeEngine extends Engine {
|
|
// if floating point linear (HALF_FLOAT) then force to NEAREST_SAMPLINGMODE
|
|
// if floating point linear (HALF_FLOAT) then force to NEAREST_SAMPLINGMODE
|
|
fullOptions.samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;
|
|
fullOptions.samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;
|
|
}
|
|
}
|
|
- var texture = new InternalTexture(this, InternalTexture.DATASOURCE_RENDERTARGET);
|
|
|
|
|
|
+ var texture = new NativeTexture(this, InternalTexture.DATASOURCE_RENDERTARGET);
|
|
|
|
|
|
var width = (<{ width: number, height: number }>size).width || <number>size;
|
|
var width = (<{ width: number, height: number }>size).width || <number>size;
|
|
var height = (<{ width: number, height: number }>size).height || <number>size;
|
|
var height = (<{ width: number, height: number }>size).height || <number>size;
|
|
@@ -1146,7 +1156,7 @@ export class NativeEngine extends Engine {
|
|
Logger.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type");
|
|
Logger.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type");
|
|
}
|
|
}
|
|
|
|
|
|
- var framebuffer = this._native.createFrameBuffer(
|
|
|
|
|
|
+ var framebuffer = this._native.createFramebuffer(
|
|
texture._webGLTexture!,
|
|
texture._webGLTexture!,
|
|
width,
|
|
width,
|
|
height,
|
|
height,
|
|
@@ -1196,7 +1206,7 @@ export class NativeEngine extends Engine {
|
|
throw new Error("forceFullscreenViewport for frame buffers not yet supported in NativeEngine.");
|
|
throw new Error("forceFullscreenViewport for frame buffers not yet supported in NativeEngine.");
|
|
}
|
|
}
|
|
|
|
|
|
- this._native.bindFrameBuffer(texture._framebuffer!);
|
|
|
|
|
|
+ this._native.bindFramebuffer(texture._framebuffer!);
|
|
}
|
|
}
|
|
|
|
|
|
public unBindFramebuffer(texture: InternalTexture, disableGenerateMipMaps = false, onBeforeUnbind?: () => void): void {
|
|
public unBindFramebuffer(texture: InternalTexture, disableGenerateMipMaps = false, onBeforeUnbind?: () => void): void {
|
|
@@ -1207,7 +1217,7 @@ export class NativeEngine extends Engine {
|
|
if (onBeforeUnbind) {
|
|
if (onBeforeUnbind) {
|
|
onBeforeUnbind();
|
|
onBeforeUnbind();
|
|
}
|
|
}
|
|
- this._native.unbindFrameBuffer(texture._framebuffer!);
|
|
|
|
|
|
+ this._native.unbindFramebuffer(texture._framebuffer!);
|
|
}
|
|
}
|
|
|
|
|
|
public createDynamicVertexBuffer(data: DataArray): DataBuffer {
|
|
public createDynamicVertexBuffer(data: DataArray): DataBuffer {
|