@Override public void delete(final JCGLInterfaceGL33Type g) throws R2Exception { if (!this.isDeleted()) { g.getArrayBuffers().arrayBufferDelete(this.array_buffer); g.getArrayObjects().arrayObjectDelete(this.array_object); g.getIndexBuffers().indexBufferDelete(this.index_buffer); } }
@Override public void onStart() { this.shaders = this.g33.getShaders(); this.textures = this.g33.getTextures(); this.array_objects = this.g33.getArrayObjects(); this.draw = this.g33.getDraw(); this.program.onActivate(this.g33); this.program.onReceiveViewValues( this.g33, this.configureViewParameters()); }
@Override public void clearBoundPrimaryFramebuffer( final JCGLInterfaceGL33Type g) throws R2RendererExceptionFramebufferNotBound { final JCGLFramebuffersType g_fb = g.getFramebuffers(); if (!g_fb.framebufferDrawIsBound(this.framebuffer)) { final StringBuilder sb = new StringBuilder(128); sb.append("Expected a framebuffer to be bound."); sb.append(System.lineSeparator()); sb.append("Framebuffer: "); sb.append(this.framebuffer); sb.append(System.lineSeparator()); throw new R2RendererExceptionFramebufferNotBound(sb.toString()); } JCGLRenderStates.activate(g, CLEAR_STATE); g.getClear().clear(CLEAR_SPEC); }
@Override public R2LightBufferType onCreate( final JCGLTextureUnitContextParentType tc, final R2LightBufferDescriptionType key) { return R2LightBuffers.newLightBuffer( this.g.getFramebuffers(), this.g.getTextures(), tc, key); }
/** * Construct a new empty batch. * * @param in_g A GL interface */ public R2DebugLineSegmentsBatch( final JCGLInterfaceGL33Type in_g) { final JCGLInterfaceGL33Type g33 = NullCheck.notNull(in_g, "GL33"); this.g33_array_buffers = g33.getArrayBuffers(); this.g33_array_objects = g33.getArrayObjects(); this.space_available = 0L; }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLShadersType g_sh = g.getShaders(); /** * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.arrayBuffers(); final JCGLArrayObjectsType g_ao = g.arrayObjects(); final JCGLIndexBuffersType g_ib = g.indexBuffers(); final JCGLShadersType g_sh = g.shaders(); /* * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
this.lines_batch.setLineSegments(segments); final JCGLViewportsType g_v = this.g.getViewports(); g_v.viewportSet(area); final JCGLArrayObjectsType g_ao = this.g.getArrayObjects(); final JCGLDrawType g_d = this.g.getDraw(); try { g_ao.arrayObjectBind(ao); tc.unitContextFinish(this.g.getTextures());
@Override public final void onDeactivate( final JCGLInterfaceGL33Type g) { g.getShaders().shaderDeactivateProgram(); }
final R2TranslucentBatchedType<T> b) final JCGLTexturesType g_tex = this.g33.getTextures(); final JCGLArrayObjectsType g_ao = this.g33.getArrayObjects(); final JCGLDrawType g_dr = this.g33.getDraw();
@Override default void delete( final JCGLInterfaceGL33Type g) throws R2Exception { if (!this.textureWritable().isDeleted()) { final JCGLTexturesType g_tx = g.getTextures(); g_tx.texture2DDelete(this.textureWritable()); } }
private void renderBatches( final R2MatricesValuesType m, final R2MaskInstancesType s, final JCGLTextureUnitContextType up) { final JCGLArrayObjectsType g_a = this.g.getArrayObjects(); final JCGLDrawType g_d = this.g.getDraw(); final List<R2InstanceBatchedType> batches = s.batched(); if (!batches.isEmpty()) { this.shader_batched.onActivate(this.g); try { this.shader_batched.onReceiveViewValues( this.g, this.configureViewParameters()); this.shader_batched.onReceiveMaterialValues( this.g, this.configureMaterialParameters(up, Unit.unit())); for (int index = 0; index < batches.size(); ++index) { final R2InstanceBatchedType instance = batches.get(index); instance.update(this.g, m.transformContext()); g_a.arrayObjectBind(instance.arrayObject()); this.shader_batched.onValidate(); g_d.drawElementsInstanced( JCGLPrimitives.PRIMITIVE_TRIANGLES, instance.renderCount()); } } finally { this.shader_batched.onDeactivate(this.g); g_a.arrayObjectUnbind(); } } }
@Override public void onReceiveShadowMap( final JCGLInterfaceGL33Type g, final JCGLTextureUnitContextMutableType tc, final R2Texture2DUsableType map) { NullCheck.notNull(g); NullCheck.notNull(tc); NullCheck.notNull(map); final JCGLShadersType g_sh = g.getShaders(); final JCGLTexturesType g_tex = g.getTextures(); final JCGLTextureUnitType unit_shadow = tc.unitContextBindTexture2D(g_tex, map.texture()); g_sh.shaderUniformPutTexture2DUnit( this.u_shadow_map, unit_shadow); }
@Override public void delete(final JCGLInterfaceGL33Type g) throws R2Exception { if (!this.isDeleted()) { this.t_depth.delete(g); final JCGLFramebuffersType g_fb = g.getFramebuffers(); g_fb.framebufferDelete(this.framebuffer); } } }
@Override public void onStart() { this.array_object_builder = this.g.getArrayObjects().arrayObjectNewBuilder(); }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLIndexBuffersType g_ib = g.getIndexBuffers(); final JCGLShadersType g_sh = g.getShaders(); /** * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public void delete( final JCGLInterfaceGL33Type g) throws R2Exception { NullCheck.notNull(g); if (!this.isDeleted()) { final JCGLArrayObjectsType g_ao = g.getArrayObjects(); final JCGLArrayBuffersType g_ab = g.getArrayBuffers(); g_ab.arrayBufferDelete(this.data_vbo); g_ao.arrayObjectDelete(this.data_vao); } }
@Override public void onFinish(final JCGLInterfaceGL33Type g) { final JCGLArrayBuffersType g_ab = g.arrayBuffers(); final JCGLArrayObjectsType g_ao = g.arrayObjects(); final JCGLIndexBuffersType g_ib = g.indexBuffers(); final JCGLShadersType g_sh = g.shaders(); /* * Delete everything. */ g_ib.indexBufferDelete(this.index_buffer); g_ab.arrayBufferDelete(this.array_buffer); g_ao.arrayObjectDelete(this.array_object); g_sh.shaderDeleteProgram(this.program); } }
@Override public R2AmbientOcclusionBufferType onCreate( final JCGLTextureUnitContextParentType tc, final R2AmbientOcclusionBufferDescriptionType key) { return R2AmbientOcclusionBuffer.newAmbientOcclusionBuffer( this.g.getFramebuffers(), this.g.getTextures(), tc, key); }
@Override public final void onActivate( final JCGLInterfaceGL33Type g) { g.getShaders().shaderActivateProgram(this.program); }