diff options
Diffstat (limited to 'indra/llrender')
| -rw-r--r-- | indra/llrender/llfontgl.cpp | 26 | ||||
| -rw-r--r-- | indra/llrender/llfontgl.h | 20 | ||||
| -rw-r--r-- | indra/llrender/llimagegl.cpp | 7 | ||||
| -rw-r--r-- | indra/llrender/llvertexbuffer.cpp | 5 | 
4 files changed, 54 insertions, 4 deletions
diff --git a/indra/llrender/llfontgl.cpp b/indra/llrender/llfontgl.cpp index 82db922368..f1f25a9bac 100644 --- a/indra/llrender/llfontgl.cpp +++ b/indra/llrender/llfontgl.cpp @@ -118,6 +118,32 @@ BOOL LLFontGL::loadFace(const std::string& filename, F32 point_size, F32 vert_dp  static LLFastTimer::DeclareTimer FTM_RENDER_FONTS("Fonts"); +S32 LLFontGL::render(const LLWString &wstr, S32 begin_offset, const LLRect& rect, const LLColor4 &color, HAlign halign, VAlign valign, U8 style,  +					 ShadowType shadow, S32 max_chars, F32* right_x, BOOL use_ellipses) const +{ +	F32 x = rect.mLeft; +	F32 y = 0.f; + +	switch(valign) +	{ +	case TOP: +		y = rect.mTop; +		break; +	case VCENTER: +		y = rect.getCenterY(); +		break; +	case BASELINE: +	case BOTTOM: +		y = rect.mBottom; +		break; +	default: +		y = rect.mBottom; +		break; +	} +	return render(wstr, begin_offset, x, y, color, halign, valign, style, shadow, max_chars, rect.getWidth(), right_x, use_ellipses); +} + +  S32 LLFontGL::render(const LLWString &wstr, S32 begin_offset, F32 x, F32 y, const LLColor4 &color, HAlign halign, VAlign valign, U8 style,   					 ShadowType shadow, S32 max_chars, S32 max_pixels, F32* right_x, BOOL use_ellipses) const  { diff --git a/indra/llrender/llfontgl.h b/indra/llrender/llfontgl.h index dfa4cf8ce5..f29ac5165c 100644 --- a/indra/llrender/llfontgl.h +++ b/indra/llrender/llfontgl.h @@ -95,8 +95,24 @@ public:  	BOOL loadFace(const std::string& filename, F32 point_size, const F32 vert_dpi, const F32 horz_dpi, const S32 components, BOOL is_fallback); -	S32 render(const LLWString &text, S32 begin_offset, F32 x, F32 y, const LLColor4 &color, HAlign halign = LEFT,  VAlign valign = BASELINE, U8 style = NORMAL, -	           ShadowType shadow = NO_SHADOW, S32 max_chars = S32_MAX, S32 max_pixels = S32_MAX, F32* right_x=NULL, BOOL use_ellipses = FALSE) const; +	S32 render(const LLWString &text, S32 begin_offset,  +				const LLRect& rect,  +				const LLColor4 &color,  +				HAlign halign = LEFT,  VAlign valign = BASELINE,  +				U8 style = NORMAL, ShadowType shadow = NO_SHADOW,  +				S32 max_chars = S32_MAX, +				F32* right_x=NULL,  +				BOOL use_ellipses = FALSE) const; + +	S32 render(const LLWString &text, S32 begin_offset,  +				F32 x, F32 y,  +				const LLColor4 &color,  +				HAlign halign = LEFT,  VAlign valign = BASELINE,  +				U8 style = NORMAL, ShadowType shadow = NO_SHADOW,  +				S32 max_chars = S32_MAX, S32 max_pixels = S32_MAX,  +				F32* right_x=NULL,  +				BOOL use_ellipses = FALSE) const; +  	S32 render(const LLWString &text, S32 begin_offset, F32 x, F32 y, const LLColor4 &color) const;  	// renderUTF8 does a conversion, so is slower! diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index 2579bad0b6..db5835b73a 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -1694,6 +1694,7 @@ void LLImageGL::analyzeAlpha(const void* data_in, U32 w, U32 h)  				sample[asum/(16*4)] += 4;  			} +			  			rowstart += 2 * w * mAlphaStride;  		}  		length *= 2; // we sampled everything twice, essentially @@ -1813,7 +1814,8 @@ BOOL LLImageGL::getMask(const LLVector2 &tc)  		{  			LL_WARNS_ONCE("render") << "Ugh, non-finite u/v in mask pick" << LL_ENDL;  			u = v = 0.f; -			//llassert(false); +			// removing assert per EXT-4388 +			// llassert(false);  		}  		if (LL_UNLIKELY(u < 0.f || u > 1.f || @@ -1821,7 +1823,8 @@ BOOL LLImageGL::getMask(const LLVector2 &tc)  		{  			LL_WARNS_ONCE("render") << "Ugh, u/v out of range in image mask pick" << LL_ENDL;  			u = v = 0.f; -			//llassert(false); +			// removing assert per EXT-4388 +			// llassert(false);  		}  		S32 x = llfloor(u * mPickMaskWidth); diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index 1d02ca4f4c..9783435e2f 100644 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -455,6 +455,11 @@ LLVertexBuffer::LLVertexBuffer(U32 typemask, S32 usage) :  		mUsage = 0;  	} +	if (mUsage == GL_STREAM_DRAW_ARB && !sUseStreamDraw) +	{ +		mUsage = 0; +	} +  	S32 stride = calcStride(typemask, mOffsets);  	mTypeMask = typemask;  | 
