|
@@ -2615,17 +2615,6 @@
|
|
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
|
|
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
|
|
this.bindUnboundFramebuffer(null);
|
|
this.bindUnboundFramebuffer(null);
|
|
|
|
|
|
- // Debug
|
|
|
|
- // texture._MSAAFramebuffer = gl.createFramebuffer();
|
|
|
|
- // this.bindUnboundFramebuffer(texture._MSAAFramebuffer);
|
|
|
|
- // var colorRenderbuffer = gl.createRenderbuffer();
|
|
|
|
- // gl.bindRenderbuffer(gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
- // gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
- // gl.renderbufferStorageMultisample(gl.RENDERBUFFER, 8, gl.RGBA8, texture._width, texture._height);
|
|
|
|
- // gl.bindRenderbuffer(gl.RENDERBUFFER, null);
|
|
|
|
- // this.bindUnboundFramebuffer(null);
|
|
|
|
- // texture._MSAARenderBuffer = colorRenderbuffer;
|
|
|
|
-
|
|
|
|
texture._framebuffer = framebuffer;
|
|
texture._framebuffer = framebuffer;
|
|
texture._baseWidth = width;
|
|
texture._baseWidth = width;
|
|
texture._baseHeight = height;
|
|
texture._baseHeight = height;
|
|
@@ -2651,6 +2640,7 @@
|
|
var generateMipMaps = false;
|
|
var generateMipMaps = false;
|
|
var generateDepthBuffer = true;
|
|
var generateDepthBuffer = true;
|
|
var generateStencilBuffer = false;
|
|
var generateStencilBuffer = false;
|
|
|
|
+ var generateDepthTexture = false;
|
|
var textureCount = 1;
|
|
var textureCount = 1;
|
|
|
|
|
|
var type = Engine.TEXTURETYPE_UNSIGNED_INT;
|
|
var type = Engine.TEXTURETYPE_UNSIGNED_INT;
|
|
@@ -2659,6 +2649,7 @@
|
|
generateMipMaps = options.generateMipMaps;
|
|
generateMipMaps = options.generateMipMaps;
|
|
generateDepthBuffer = options.generateDepthBuffer === undefined ? true : options.generateDepthBuffer;
|
|
generateDepthBuffer = options.generateDepthBuffer === undefined ? true : options.generateDepthBuffer;
|
|
generateStencilBuffer = options.generateStencilBuffer;
|
|
generateStencilBuffer = options.generateStencilBuffer;
|
|
|
|
+ generateDepthTexture = options.generateDepthTexture;
|
|
textureCount = options.textureCount || 1;
|
|
textureCount = options.textureCount || 1;
|
|
|
|
|
|
type = options.type === undefined ? type : options.type;
|
|
type = options.type === undefined ? type : options.type;
|
|
@@ -2679,13 +2670,13 @@
|
|
var framebuffer = gl.createFramebuffer();
|
|
var framebuffer = gl.createFramebuffer();
|
|
this.bindUnboundFramebuffer(framebuffer);
|
|
this.bindUnboundFramebuffer(framebuffer);
|
|
|
|
|
|
- var colorRenderbuffer = gl.createRenderbuffer();
|
|
|
|
- gl.bindRenderbuffer(gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
- gl.renderbufferStorageMultisample(gl.RENDERBUFFER, 16, gl.RGBA8, width, height);
|
|
|
|
- gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
|
|
|
|
- gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
- gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT1, gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
- gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
|
|
+ // var colorRenderbuffer = gl.createRenderbuffer();
|
|
|
|
+ // gl.bindRenderbuffer(gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
+ // gl.renderbufferStorageMultisample(gl.RENDERBUFFER, 16, gl.RGBA8, width, height);
|
|
|
|
+ // gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
|
|
|
|
+ // gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
+ // gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT1, gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
+ // gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, colorRenderbuffer);
|
|
|
|
|
|
var width = size.width || size;
|
|
var width = size.width || size;
|
|
var height = size.height || size;
|
|
var height = size.height || size;
|
|
@@ -2698,6 +2689,8 @@
|
|
Tools.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type");
|
|
Tools.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ var depthStencilBuffer = this._setupFramebufferDepthAttachments(generateStencilBuffer, generateDepthBuffer, width, height);
|
|
|
|
+
|
|
for (var i = 0; i < textureCount; i++) {
|
|
for (var i = 0; i < textureCount; i++) {
|
|
var texture = gl.createTexture();
|
|
var texture = gl.createTexture();
|
|
var attachment = gl["COLOR_ATTACHMENT" + i];
|
|
var attachment = gl["COLOR_ATTACHMENT" + i];
|
|
@@ -2716,7 +2709,6 @@
|
|
|
|
|
|
gl.framebufferTexture2D(gl.DRAW_FRAMEBUFFER, attachment, gl.TEXTURE_2D, texture, 0);
|
|
gl.framebufferTexture2D(gl.DRAW_FRAMEBUFFER, attachment, gl.TEXTURE_2D, texture, 0);
|
|
|
|
|
|
- // texture._depthStencilBuffer = this._setupFramebufferDepthAttachments(generateStencilBuffer, generateDepthBuffer, width, height);
|
|
|
|
|
|
|
|
if (generateMipMaps) {
|
|
if (generateMipMaps) {
|
|
this._gl.generateMipmap(this._gl.TEXTURE_2D);
|
|
this._gl.generateMipmap(this._gl.TEXTURE_2D);
|
|
@@ -2726,6 +2718,7 @@
|
|
this._bindTextureDirectly(gl.TEXTURE_2D, null);
|
|
this._bindTextureDirectly(gl.TEXTURE_2D, null);
|
|
|
|
|
|
texture._framebuffer = framebuffer;
|
|
texture._framebuffer = framebuffer;
|
|
|
|
+ texture._depthStencilBuffer = depthStencilBuffer;
|
|
texture._baseWidth = width;
|
|
texture._baseWidth = width;
|
|
texture._baseHeight = height;
|
|
texture._baseHeight = height;
|
|
texture._width = width;
|
|
texture._width = width;
|
|
@@ -2738,9 +2731,11 @@
|
|
texture.type = type;
|
|
texture.type = type;
|
|
texture._generateDepthBuffer = generateDepthBuffer;
|
|
texture._generateDepthBuffer = generateDepthBuffer;
|
|
texture._generateStencilBuffer = generateStencilBuffer;
|
|
texture._generateStencilBuffer = generateStencilBuffer;
|
|
|
|
+
|
|
|
|
+ this._loadedTexturesCache.push(texture);
|
|
}
|
|
}
|
|
|
|
|
|
- if (generateDepthBuffer) {
|
|
|
|
|
|
+ if (generateDepthTexture) {
|
|
// Depth texture
|
|
// Depth texture
|
|
var depthTexture = gl.createTexture();
|
|
var depthTexture = gl.createTexture();
|
|
|
|
|
|
@@ -2780,11 +2775,11 @@
|
|
depthTexture.generateMipMaps = generateMipMaps;
|
|
depthTexture.generateMipMaps = generateMipMaps;
|
|
depthTexture.references = 1;
|
|
depthTexture.references = 1;
|
|
depthTexture.samplingMode = gl.NEAREST;
|
|
depthTexture.samplingMode = gl.NEAREST;
|
|
- // depthTexture.type = Engine.TEXTURETYPE_UNSIGNED_INT;
|
|
|
|
depthTexture._generateDepthBuffer = generateDepthBuffer;
|
|
depthTexture._generateDepthBuffer = generateDepthBuffer;
|
|
depthTexture._generateStencilBuffer = generateStencilBuffer;
|
|
depthTexture._generateStencilBuffer = generateStencilBuffer;
|
|
|
|
|
|
textures.push(depthTexture)
|
|
textures.push(depthTexture)
|
|
|
|
+ this._loadedTexturesCache.push(depthTexture);
|
|
}
|
|
}
|
|
|
|
|
|
gl.drawBuffers(attachments);
|
|
gl.drawBuffers(attachments);
|
|
@@ -2793,9 +2788,6 @@
|
|
|
|
|
|
this.resetTextureCache();
|
|
this.resetTextureCache();
|
|
|
|
|
|
- // To keep ?
|
|
|
|
- //this._loadedTexturesCache.push(texture);
|
|
|
|
-
|
|
|
|
return textures;
|
|
return textures;
|
|
}
|
|
}
|
|
|
|
|