diff options
Diffstat (limited to 'indra/llrender')
-rw-r--r-- | indra/llrender/llrender.cpp | 59 | ||||
-rw-r--r-- | indra/llrender/llrender.h | 3 | ||||
-rw-r--r-- | indra/llrender/llrender2dutils.cpp | 2 | ||||
-rw-r--r-- | indra/llrender/llrendertarget.cpp | 10 | ||||
-rw-r--r-- | indra/llrender/llrendertarget.h | 4 | ||||
-rw-r--r-- | indra/llrender/llshadermgr.cpp | 6 | ||||
-rw-r--r-- | indra/llrender/llvertexbuffer.cpp | 4 |
7 files changed, 50 insertions, 38 deletions
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index d0e268f08c..70993393ff 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -1,4 +1,4 @@ -/** + /** * @file llrender.cpp * @brief LLRender implementation * @@ -139,21 +139,21 @@ U32 LLTexUnit::getInternalType(eTextureType type) void LLTexUnit::refreshState(void) { -// We set dirty to true so that the tex unit knows to ignore caching -// and we reset the cached tex unit state + // We set dirty to true so that the tex unit knows to ignore caching + // and we reset the cached tex unit state -gGL.flush(); + gGL.flush(); -glActiveTexture(GL_TEXTURE0 + mIndex); + glActiveTexture(GL_TEXTURE0 + mIndex); -if (mCurrTexType != TT_NONE) -{ - glBindTexture(sGLTextureType[mCurrTexType], mCurrTexture); -} -else -{ - glBindTexture(GL_TEXTURE_2D, 0); -} + if (mCurrTexType != TT_NONE) + { + glBindTexture(sGLTextureType[mCurrTexType], mCurrTexture); + } + else + { + glBindTexture(GL_TEXTURE_2D, 0); + } } void LLTexUnit::activate(void) @@ -660,12 +660,12 @@ void LLTexUnit::debugTextureUnit(void) LLLightState::LLLightState(S32 index) : mIndex(index), -mEnabled(false), -mConstantAtten(1.f), -mLinearAtten(0.f), -mQuadraticAtten(0.f), -mSpotExponent(0.f), -mSpotCutoff(180.f) + mEnabled(false), + mConstantAtten(1.f), + mLinearAtten(0.f), + mQuadraticAtten(0.f), + mSpotExponent(0.f), + mSpotCutoff(180.f) { if (mIndex == 0) { @@ -824,7 +824,7 @@ void LLLightState::setSpotDirection(const LLVector3& direction) } LLRender::LLRender() -: mDirty(false), + : mDirty(false), mCount(0), mMode(LLRender::TRIANGLES), mCurrTextureUnitIndex(0) @@ -1455,7 +1455,7 @@ void LLRender::blendFunc(eBlendFactor sfactor, eBlendFactor dfactor) } void LLRender::blendFunc(eBlendFactor color_sfactor, eBlendFactor color_dfactor, - eBlendFactor alpha_sfactor, eBlendFactor alpha_dfactor) + eBlendFactor alpha_sfactor, eBlendFactor alpha_dfactor) { llassert(color_sfactor < BF_UNDEF); llassert(color_dfactor < BF_UNDEF); @@ -1472,7 +1472,7 @@ void LLRender::blendFunc(eBlendFactor color_sfactor, eBlendFactor color_dfactor, flush(); glBlendFuncSeparate(sGLBlendFactor[color_sfactor], sGLBlendFactor[color_dfactor], - sGLBlendFactor[alpha_sfactor], sGLBlendFactor[alpha_dfactor]); + sGLBlendFactor[alpha_sfactor], sGLBlendFactor[alpha_dfactor]); } } @@ -1611,8 +1611,8 @@ void LLRender::flush(std::string comment_) { if (mCount%3 != 0) { - count -= (mCount % 3); - LL_WARNS() << "Incomplete triangle requested." << LL_ENDL; + count -= (mCount % 3); + LL_WARNS() << "Incomplete triangle requested." << LL_ENDL; } } @@ -1666,6 +1666,11 @@ void LLRender::flush(std::string comment_) LOG_GLERROR("LLRender::flush() end " + comment_); } +void LLRender::flush() +{ + flush(""); +} + LLVertexBuffer* LLRender::bufferfromCache(U32 attribute_mask, U32 count) { LLVertexBuffer *vb = nullptr; @@ -2129,9 +2134,9 @@ glm::vec3 mul_mat4_vec3(const glm::mat4& mat, const glm::vec3& vec) #if 1 // SIMD path results in strange crashes. Fall back to scalar for now. const float w = vec[0] * mat[0][3] + vec[1] * mat[1][3] + vec[2] * mat[2][3] + mat[3][3]; return glm::vec3( - (vec[0] * mat[0][0] + vec[1] * mat[1][0] + vec[2] * mat[2][0] + mat[3][0]) / w, - (vec[0] * mat[0][1] + vec[1] * mat[1][1] + vec[2] * mat[2][1] + mat[3][1]) / w, - (vec[0] * mat[0][2] + vec[1] * mat[1][2] + vec[2] * mat[2][2] + mat[3][2]) / w + (vec[0] * mat[0][0] + vec[1] * mat[1][0] + vec[2] * mat[2][0] + mat[3][0]) / w, + (vec[0] * mat[0][1] + vec[1] * mat[1][1] + vec[2] * mat[2][1] + mat[3][1]) / w, + (vec[0] * mat[0][2] + vec[1] * mat[1][2] + vec[2] * mat[2][2] + mat[3][2]) / w ); #else LLVector4a x, y, z, s, t, p, q; diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h index f0f9cd4364..a755ddd2b1 100644 --- a/indra/llrender/llrender.h +++ b/indra/llrender/llrender.h @@ -421,7 +421,8 @@ public: LLVector3 getUITranslation(); LLVector3 getUIScale(); - void flush(std::string comment_ = ""); + void flush(std::string comment_); + void flush(); // if list is set, will store buffers in list for later use, if list isn't set, will use cache void beginList(std::list<LLVertexBufferData> *list); diff --git a/indra/llrender/llrender2dutils.cpp b/indra/llrender/llrender2dutils.cpp index 0ee47dec6d..714df863cd 100644 --- a/indra/llrender/llrender2dutils.cpp +++ b/indra/llrender/llrender2dutils.cpp @@ -1801,10 +1801,12 @@ void LLRender2D::setLineWidth(F32 width) // If outside the allowed range, glLineWidth fails with "invalid value". // On Darwin, the range is [1, 1]. static GLfloat range[2]{0.0}; +#if GL_VERSION_1_2 if (range[1] == 0) { glGetFloatv(GL_SMOOTH_LINE_WIDTH_RANGE, range); } +#endif width *= lerp(LLRender::sUIGLScaleFactor.mV[VX], LLRender::sUIGLScaleFactor.mV[VY], 0.5f); glLineWidth(llclamp(width, range[0], range[1])); } diff --git a/indra/llrender/llrendertarget.cpp b/indra/llrender/llrendertarget.cpp index 957c85b606..ddb2bf5df7 100644 --- a/indra/llrender/llrendertarget.cpp +++ b/indra/llrender/llrendertarget.cpp @@ -511,9 +511,10 @@ void LLRenderTarget::bindTarget(std::string name_, U32 mode_) GL_COLOR_ATTACHMENT3}; if (mTex.empty()) - { //no color buffer to draw to + { //no color buffer to draw to if(!mUseDepth) LL_WARNS() << mName << " HAS NO COLOR BUFFER AND NO DEPTH!!" << LL_ENDL; - glDrawBuffer(GL_NONE); + GLenum buffers[] = {GL_NONE}; + glDrawBuffers(0, buffers); glReadBuffer(GL_NONE); } else if(mMode == 0) @@ -532,7 +533,8 @@ void LLRenderTarget::bindTarget(std::string name_, U32 mode_) } else if(mMode == 2) { - glDrawBuffer(GL_NONE); + GLenum buffers[] = {GL_NONE}; + glDrawBuffers(0, buffers); glReadBuffer(GL_COLOR_ATTACHMENT0); LOG_GLERROR(mName+" read buffer"); } @@ -724,4 +726,4 @@ U32 LLRenderTarget::getTarget() else if(mMode == 2) target = GL_READ_FRAMEBUFFER; return target; -}
\ No newline at end of file +} diff --git a/indra/llrender/llrendertarget.h b/indra/llrender/llrendertarget.h index 583d0054ac..ce3025f280 100644 --- a/indra/llrender/llrendertarget.h +++ b/indra/llrender/llrendertarget.h @@ -33,9 +33,9 @@ #include "llrender.h" /* -Wrapper around OpenGL framebuffer objects for use in render-to-texture + Wrapper around OpenGL framebuffer objects for use in render-to-texture -SAMPLE USAGE: + SAMPLE USAGE: LLRenderTarget target; diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index 3bc71a7413..6a3f88f9d3 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -451,7 +451,7 @@ void LLShaderMgr::dumpObjectLog(GLuint ret, bool warns, const std::string& filen LL_SHADER_LOADING_WARNS() << "Shader loading from " << fname << LL_ENDL; LL_SHADER_LOADING_WARNS() << "\n" << log << LL_ENDL; } -} + } GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_level, GLenum type, std::map<std::string, std::string>* defines, S32 texture_index_channels) { @@ -740,7 +740,7 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev //copy file into memory enum { - flag_write_to_out_of_extra_block_area = 0x01 + flag_write_to_out_of_extra_block_area = 0x01 , flag_extra_block_marker_was_found = 0x02 }; @@ -756,7 +756,7 @@ GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_lev #endif while(NULL != fgets((char *)buff, 1024, file) - && shader_code_count < (LL_ARRAY_SIZE(shader_code_text) - LL_ARRAY_SIZE(extra_code_text))) + && shader_code_count < (LL_ARRAY_SIZE(shader_code_text) - LL_ARRAY_SIZE(extra_code_text))) { file_lines_count++; diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index 2a0acab05a..43d780a383 100644 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -1675,7 +1675,9 @@ void LLVertexBuffer::setBuffer() U32 data_mask = LLGLSLShader::sCurBoundShaderPtr->mAttributeMask; // this Vertex Buffer must provide all necessary attributes for currently bound shader - llassert_msg((data_mask & mTypeMask) == data_mask, "Attribute mask mismatch! mTypeMask should be a superset of data_mask. data_mask: 0x" << std::hex << data_mask << " mTypeMask: 0x" << mTypeMask << " Missing: 0x" << (data_mask & ~mTypeMask) << std::dec); + llassert_msg((data_mask & mTypeMask) == data_mask, + "Attribute mask mismatch! mTypeMask should be a superset of data_mask. data_mask: 0x" + << std::hex << data_mask << " mTypeMask: 0x" << mTypeMask << " Missing: 0x" << (data_mask & ~mTypeMask) << std::dec); if (sGLRenderBuffer != mGLBuffer) { |