/*     */ package org.renderer;
/*     */ 
/*     */ import java.awt.Dimension;
import java.nio.ByteBuffer;
/*     */ import org.lwjgl.opengl.GL11C;
/*     */ import org.lwjgl.opengl.GL30C;
/*     */ import org.lwjgl.opengl.GL32C;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class FBO
/*     */   implements AutoCloseable
/*     */ {
/*     */   private int fboHandle;
/*     */   private int fboTexture;
/*     */   
/*     */   public FBO(Dimension size) {
/*  45 */     generate(size);
/*     */     
/*  47 */     unbind();
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   private void generate(Dimension size) {
/*  57 */     this.fboHandle = GL30C.glGenFramebuffers();
/*     */     
/*  59 */     this.fboTexture = GL11C.glGenTextures();
/*     */ 
/*     */     
/*  62 */     GL11C.glBindTexture(3553, this.fboTexture);
/*     */ 
/*     */     
/*  65 */     GL11C.glTexImage2D(3553, 0, 34836, size.width, size.height, 0, 6408, 5126, (ByteBuffer)  null);
/*     */ 
/*     */     
/*  68 */     GL11C.glTexParameteri(3553, 10240, 9729);
/*  69 */     GL11C.glTexParameteri(3553, 10241, 9729);
/*     */ 
/*     */     
/*  72 */     GL30C.glBindFramebuffer(36160, this.fboHandle);
/*     */     
/*  74 */     GL32C.glFramebufferTexture(36160, 36064, this.fboTexture, 0);
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public final void recreate(Dimension size) {
/*  84 */     GL30C.glDeleteFramebuffers(this.fboHandle);
/*  85 */     GL11C.glDeleteTextures(this.fboTexture);
/*     */     
/*  87 */     generate(size);
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public final void bind() {
/*  94 */     GL11C.glBindTexture(3553, 0);
/*  95 */     GL30C.glBindFramebuffer(36160, this.fboHandle);
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public final void unbind() {
/* 103 */     GL30C.glBindFramebuffer(36160, 0);
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public int getTextureHandle() {
/* 112 */     return this.fboTexture;
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public final void close() {
/* 120 */     GL30C.glDeleteFramebuffers(this.fboHandle);
/* 121 */     GL11C.glDeleteTextures(this.fboTexture);
/*     */   }
/*     */ }


/* Location:              /home/teridax/Projects/Gytebot/GYTEBOT.jar!/org/renderer/FBO.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */