render_textureCube::render_textureCube(device* _dev, const viewport& vp, pixel_format f, pixel_format df) : _vp(vp), textureCube(_dev, vp.size, f, vector<byte*>({ nullptr, nullptr, nullptr, nullptr, nullptr, nullptr })), _wstencil(has_stencil(df)) { glGenFramebuffers(6, _fbo); glGenTextures(1, &_db); glBindTexture(GL_TEXTURE_2D, _db); glTexImage2D(GL_TEXTURE_2D, 0, (GLenum)f, _size.x, _size.y, 0, detail::get_gl_format_internal(f), detail::get_gl_format_type(f), 0); for (int i = 0; i < 6; ++i) { glBindFramebuffer(GL_FRAMEBUFFER, _fbo[i]); glFramebufferTextureFaceEXT(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, _id, 0, i + GL_TEXTURE_CUBE_MAP_POSITIVE_X); glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, _wstencil ? GL_DEPTH_STENCIL_ATTACHMENT : GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, _db, 0); } glDrawBuffer(GL_COLOR_ATTACHMENT0); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); }
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTGeometryShader4_nglFramebufferTextureFaceEXT(JNIEnv *env, jclass clazz, jint target, jint attachment, jint texture, jint level, jint face, jlong function_pointer) { glFramebufferTextureFaceEXTPROC glFramebufferTextureFaceEXT = (glFramebufferTextureFaceEXTPROC)((intptr_t)function_pointer); glFramebufferTextureFaceEXT(target, attachment, texture, level, face); }
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTGeometryShader4_glFramebufferTextureFaceEXT(JNIEnv *__env, jclass clazz, jint target, jint attachment, jint texture, jint level, jint face) { glFramebufferTextureFaceEXTPROC glFramebufferTextureFaceEXT = (glFramebufferTextureFaceEXTPROC)tlsGetFunction(1719); UNUSED_PARAM(clazz) glFramebufferTextureFaceEXT(target, attachment, texture, level, face); }