EXTERN_C_ENTER JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL40_nglBlendEquationi(JNIEnv *__env, jclass clazz, jint buf, jint mode, jlong __functionAddress) { glBlendEquationiPROC glBlendEquationi = (glBlendEquationiPROC)(intptr_t)__functionAddress; UNUSED_PARAMS(__env, clazz) glBlendEquationi(buf, mode); }
static int BlendEquation(lua_State *L) { GLuint buf; GLenum mode, alpha; if(lua_isinteger(L, 1)) { buf = luaL_checkinteger(L, 1); mode = checkblendmode(L, 2); if(lua_isstring(L, 3)) { alpha = checkblendmode(L,3); glBlendEquationSeparatei(buf, mode, alpha); } else glBlendEquationi(buf, mode); } else { mode = checkblendmode(L, 1); if(lua_isstring(L, 2)) { alpha = checkblendmode(L,2); glBlendEquationSeparate(mode, alpha); } else glBlendEquation(mode); } CheckError(L); return 0; }
void SceneManager::Render(Camera * camera) { Shader *R2T = Manager::Shader->GetShader("rendertargets"); R2T->Use(); camera->BindPosition(R2T->loc_eye_pos); camera->BindViewMatrix(R2T->loc_view_matrix); camera->BindProjectionMatrix(R2T->loc_projection_matrix); glUniform1f(R2T->loc_transparency, 1); glDepthMask(GL_TRUE); glEnable(GL_DEPTH_TEST); list<GameObject*> transparentObjects; for (auto *obj : frustumObjects) { if (obj->mesh && obj->mesh->meshType == MeshType::STATIC) { if (obj->renderer->IsTransparent()) { transparentObjects.push_back(obj); } else { obj->Render(R2T); } } } // Render transparent objects glEnable(GL_BLEND); glBlendEquationi(0, GL_FUNC_ADD); glBlendFunci(0, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); for (auto *obj : transparentObjects) { if (obj->mesh && obj->mesh->meshType == MeshType::STATIC) { glUniform1f(R2T->loc_transparency, obj->renderer->GetOpacity()); obj->Render(R2T); } } glUniform1f(R2T->loc_transparency, 0.3f); for (auto *obj : lights) { obj->Render(R2T); } glDisable(GL_BLEND); // Render Skinned meshes Shader *R2TSk = Manager::Shader->GetShader("r2tskinning"); if (R2TSk) { R2TSk->Use(); camera->BindPosition(R2TSk->loc_eye_pos); camera->BindViewMatrix(R2TSk->loc_view_matrix); camera->BindProjectionMatrix(R2TSk->loc_projection_matrix); for (auto *obj : frustumObjects) { if (obj->mesh && obj->mesh->meshType == MeshType::SKINNED) { obj->Render(R2TSk); } } } }
void PipelineImpl::setColorState(GlState& state) const { if(state.m_stateHashes.m_color == m_hashes.m_color) { return; } state.m_stateHashes.m_color = m_hashes.m_color; if(m_blendEnabled) { glEnable(GL_BLEND); for(U i = 0; i < m_in.m_color.m_attachmentCount; ++i) { const Attachment& att = m_cache.m_attachments[i]; glBlendFunci(i, att.m_srcBlendMethod, att.m_dstBlendMethod); glBlendEquationi(i, att.m_blendFunction); glColorMaski(i, att.m_channelWriteMask[0], att.m_channelWriteMask[1], att.m_channelWriteMask[2], att.m_channelWriteMask[3]); state.m_colorWriteMasks[i][0] = att.m_channelWriteMask[0]; state.m_colorWriteMasks[i][1] = att.m_channelWriteMask[1]; state.m_colorWriteMasks[i][2] = att.m_channelWriteMask[2]; state.m_colorWriteMasks[i][3] = att.m_channelWriteMask[3]; } } else { glDisable(GL_BLEND); for(U i = 0; i < m_in.m_color.m_attachmentCount; ++i) { const Attachment& att = m_cache.m_attachments[i]; glColorMaski(i, att.m_channelWriteMask[0], att.m_channelWriteMask[1], att.m_channelWriteMask[2], att.m_channelWriteMask[3]); state.m_colorWriteMasks[i][0] = att.m_channelWriteMask[0]; state.m_colorWriteMasks[i][1] = att.m_channelWriteMask[1]; state.m_colorWriteMasks[i][2] = att.m_channelWriteMask[2]; state.m_colorWriteMasks[i][3] = att.m_channelWriteMask[3]; } } }
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_GLES32_glBlendEquationi(JNIEnv *__env, jclass clazz, jint buf, jint mode) { glBlendEquationiPROC glBlendEquationi = (glBlendEquationiPROC)tlsGetFunction(329); UNUSED_PARAM(clazz) glBlendEquationi(buf, mode); }
//! glBlendEquationi wrapper. May throw. inline void blendEquationi(GLuint const buf, GLenum const mode) { glBlendEquationi(buf, mode); checkError("glBlendEquationi"); }