diff --git a/RNGL/GLCanvas.m b/RNGL/GLCanvas.m index b6c00f5be6197b840de4dfaba7f6a1ca2efd07e7..85165c1991ac2df9df5d38b261a69a3d6b5515b4 100644 --- a/RNGL/GLCanvas.m +++ b/RNGL/GLCanvas.m @@ -286,6 +286,8 @@ RCT_NOT_IMPLEMENTED(-init) - (void)drawRect:(CGRect)rect { + self.layer.opaque = _opaque; + [self syncEventsThrough]; if (!_preloadingDone) { glClearColor(0.0, 0.0, 0.0, 0.0); @@ -308,9 +310,6 @@ RCT_NOT_IMPLEMENTED(-init) - (void)render { if (!_renderData) return; - - self.layer.opaque = _opaque; - [self syncEventsThrough]; CGFloat scale = RCTScreenScale(); @@ -355,12 +354,19 @@ RCT_NOT_IMPLEMENTED(-init) glDrawArrays(GL_TRIANGLES, 0, 6); }; + // DRAWING THE SCENE + glGetIntegerv(GL_FRAMEBUFFER_BINDING, &defaultFBO); + glDisable(GL_BLEND); + [self syncContentTextures]; recDraw(_renderData); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO); } } diff --git a/RNGL/GLShader.m b/RNGL/GLShader.m index 1dd692e0cae98adf145ff13f292f90828104b15a..2271400bec1d2e384a581f018e31d39c225e17b7 100644 --- a/RNGL/GLShader.m +++ b/RNGL/GLShader.m @@ -345,9 +345,6 @@ GLuint compileShader (NSString* shaderName, NSString* shaderString, GLenum shade - (void) makeProgram { if (![self ensureContext]) return; - - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); GLuint vertex = compileShader(_name, _vert, GL_VERTEX_SHADER); if (vertex == -1) return;