Example #1
0
	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);
}