Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
XDG Integration
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Silent mode is enabled
All outbound communications are blocked.
Learn more
.
Show more breadcrumbs
JennaHuntsman
XDG Integration
Commits
079281fd
Commit
079281fd
authored
4 years ago
by
Rye Mutt
Browse files
Options
Downloads
Patches
Plain Diff
Start to eliminate fixed function code
parent
421b0ec5
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
indra/newview/lldrawpoolterrain.cpp
+2
-420
2 additions, 420 deletions
indra/newview/lldrawpoolterrain.cpp
indra/newview/lldrawpoolterrain.h
+0
-2
0 additions, 2 deletions
indra/newview/lldrawpoolterrain.h
with
2 additions
and
422 deletions
indra/newview/lldrawpoolterrain.cpp
+
2
−
420
View file @
079281fd
...
...
@@ -162,14 +162,8 @@ void LLDrawPoolTerrain::render(S32 pass)
LLOverrideFaceColor
override
(
this
,
1.
f
,
1.
f
,
1.
f
,
1.
f
);
if
(
!
gGLManager
.
mHasMultitexture
)
{
// No multitexture, render simple land.
renderSimple
();
// Render without multitexture
return
;
}
// Render simplified land if video card can't do sufficient multitexturing
if
(
!
gGLManager
.
mHasARBEnvCombine
||
(
gGLManager
.
mNumTextureUnits
<
2
))
if
(
!
gGLManager
.
mHasMultitexture
||
!
gGLManager
.
mHasARBEnvCombine
||
(
gGLManager
.
mNumTextureUnits
<
2
))
{
renderSimple
();
// Render without multitexture
return
;
...
...
@@ -187,18 +181,7 @@ void LLDrawPoolTerrain::render(S32 pass)
{
gPipeline
.
enableLightsStatic
();
if
(
sDetailMode
==
0
)
{
renderSimple
();
}
else
if
(
gGLManager
.
mNumTextureUnits
<
4
)
{
renderFull2TU
();
}
else
{
renderFull4TU
();
}
renderSimple
();
}
// Special-case for land ownership feedback
...
...
@@ -472,407 +455,6 @@ void LLDrawPoolTerrain::hilightParcelOwners(bool deferred)
}
}
void
LLDrawPoolTerrain
::
renderFull4TU
()
{
// Hack! Get the region that this draw pool is rendering from!
LLViewerRegion
*
regionp
=
mDrawFace
[
0
]
->
getDrawable
()
->
getVObj
()
->
getRegion
();
LLVLComposition
*
compp
=
regionp
->
getComposition
();
// [SL:KB] - Patch: Render-TextureToggle (Catznip-4.0)
LLViewerTexture
*
detail_texture0p
=
(
LLPipeline
::
sRenderTextures
)
?
compp
->
mDetailTextures
[
0
]
:
LLViewerFetchedTexture
::
sDefaultDiffuseImagep
;
LLViewerTexture
*
detail_texture1p
=
(
LLPipeline
::
sRenderTextures
)
?
compp
->
mDetailTextures
[
1
]
:
LLViewerFetchedTexture
::
sDefaultDiffuseImagep
;
LLViewerTexture
*
detail_texture2p
=
(
LLPipeline
::
sRenderTextures
)
?
compp
->
mDetailTextures
[
2
]
:
LLViewerFetchedTexture
::
sDefaultDiffuseImagep
;
LLViewerTexture
*
detail_texture3p
=
(
LLPipeline
::
sRenderTextures
)
?
compp
->
mDetailTextures
[
3
]
:
LLViewerFetchedTexture
::
sDefaultDiffuseImagep
;
// [/SL:KB]
// LLViewerTexture *detail_texture0p = compp->mDetailTextures[0];
// LLViewerTexture *detail_texture1p = compp->mDetailTextures[1];
// LLViewerTexture *detail_texture2p = compp->mDetailTextures[2];
// LLViewerTexture *detail_texture3p = compp->mDetailTextures[3];
LLVector3d
region_origin_global
=
gAgent
.
getRegion
()
->
getOriginGlobal
();
F32
offset_x
=
(
F32
)
fmod
(
region_origin_global
.
mdV
[
VX
],
1.0
/
(
F64
)
sDetailScale
)
*
sDetailScale
;
F32
offset_y
=
(
F32
)
fmod
(
region_origin_global
.
mdV
[
VY
],
1.0
/
(
F64
)
sDetailScale
)
*
sDetailScale
;
LLVector4
tp0
,
tp1
;
tp0
.
setVec
(
sDetailScale
,
0.0
f
,
0.0
f
,
offset_x
);
tp1
.
setVec
(
0.0
f
,
sDetailScale
,
0.0
f
,
offset_y
);
gGL
.
blendFunc
(
LLRender
::
BF_ONE_MINUS_SOURCE_ALPHA
,
LLRender
::
BF_SOURCE_ALPHA
);
//----------------------------------------------------------------------------
// Pass 1/1
//
// Stage 0: detail texture 0
//
gGL
.
getTexUnit
(
0
)
->
activate
();
gGL
.
getTexUnit
(
0
)
->
bind
(
detail_texture0p
);
glEnable
(
GL_TEXTURE_GEN_S
);
glEnable
(
GL_TEXTURE_GEN_T
);
glTexGeni
(
GL_S
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGeni
(
GL_T
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGenfv
(
GL_S
,
GL_OBJECT_PLANE
,
tp0
.
mV
);
glTexGenfv
(
GL_T
,
GL_OBJECT_PLANE
,
tp1
.
mV
);
gGL
.
getTexUnit
(
0
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_TEX_COLOR
);
//
// Stage 1: Generate alpha ramp for detail0/detail1 transition
//
gGL
.
getTexUnit
(
1
)
->
bind
(
m2DAlphaRampImagep
.
get
());
gGL
.
getTexUnit
(
1
)
->
enable
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
1
)
->
activate
();
// Care about alpha only
gGL
.
getTexUnit
(
1
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_PREV_COLOR
);
gGL
.
getTexUnit
(
1
)
->
setTextureAlphaBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_TEX_ALPHA
);
//
// Stage 2: Interpolate detail1 with existing based on ramp
//
gGL
.
getTexUnit
(
2
)
->
bind
(
detail_texture1p
);
gGL
.
getTexUnit
(
2
)
->
enable
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
2
)
->
activate
();
glEnable
(
GL_TEXTURE_GEN_S
);
glEnable
(
GL_TEXTURE_GEN_T
);
glTexGeni
(
GL_S
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGeni
(
GL_T
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGenfv
(
GL_S
,
GL_OBJECT_PLANE
,
tp0
.
mV
);
glTexGenfv
(
GL_T
,
GL_OBJECT_PLANE
,
tp1
.
mV
);
gGL
.
getTexUnit
(
2
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_LERP_PREV_ALPHA
,
LLTexUnit
::
TBS_PREV_COLOR
,
LLTexUnit
::
TBS_TEX_COLOR
);
//
// Stage 3: Modulate with primary (vertex) color for lighting
//
gGL
.
getTexUnit
(
3
)
->
bind
(
detail_texture1p
);
gGL
.
getTexUnit
(
3
)
->
enable
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
3
)
->
activate
();
// Set alpha texture and do lighting modulation
gGL
.
getTexUnit
(
3
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_MULT
,
LLTexUnit
::
TBS_PREV_COLOR
,
LLTexUnit
::
TBS_VERT_COLOR
);
gGL
.
getTexUnit
(
0
)
->
activate
();
// GL_BLEND disabled by default
drawLoop
();
//----------------------------------------------------------------------------
// Second pass
// Stage 0: Write detail3 into base
//
gGL
.
getTexUnit
(
0
)
->
activate
();
gGL
.
getTexUnit
(
0
)
->
bind
(
detail_texture3p
);
glEnable
(
GL_TEXTURE_GEN_S
);
glEnable
(
GL_TEXTURE_GEN_T
);
glTexGeni
(
GL_S
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGeni
(
GL_T
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGenfv
(
GL_S
,
GL_OBJECT_PLANE
,
tp0
.
mV
);
glTexGenfv
(
GL_T
,
GL_OBJECT_PLANE
,
tp1
.
mV
);
gGL
.
getTexUnit
(
0
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_TEX_COLOR
);
//
// Stage 1: Generate alpha ramp for detail2/detail3 transition
//
gGL
.
getTexUnit
(
1
)
->
bind
(
m2DAlphaRampImagep
);
gGL
.
getTexUnit
(
1
)
->
enable
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
1
)
->
activate
();
// Set the texture matrix
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
translatef
(
-
2.
f
,
0.
f
,
0.
f
);
// Care about alpha only
gGL
.
getTexUnit
(
1
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_PREV_COLOR
);
gGL
.
getTexUnit
(
1
)
->
setTextureAlphaBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_TEX_ALPHA
);
//
// Stage 2: Interpolate detail2 with existing based on ramp
//
gGL
.
getTexUnit
(
2
)
->
bind
(
detail_texture2p
);
gGL
.
getTexUnit
(
2
)
->
enable
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
2
)
->
activate
();
glEnable
(
GL_TEXTURE_GEN_S
);
glEnable
(
GL_TEXTURE_GEN_T
);
glTexGeni
(
GL_S
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGeni
(
GL_T
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGenfv
(
GL_S
,
GL_OBJECT_PLANE
,
tp0
.
mV
);
glTexGenfv
(
GL_T
,
GL_OBJECT_PLANE
,
tp1
.
mV
);
gGL
.
getTexUnit
(
2
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_LERP_PREV_ALPHA
,
LLTexUnit
::
TBS_TEX_COLOR
,
LLTexUnit
::
TBS_PREV_COLOR
);
//
// Stage 3: Generate alpha ramp for detail1/detail2 transition
//
gGL
.
getTexUnit
(
3
)
->
bind
(
m2DAlphaRampImagep
);
gGL
.
getTexUnit
(
3
)
->
enable
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
3
)
->
activate
();
// Set the texture matrix
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
translatef
(
-
1.
f
,
0.
f
,
0.
f
);
gGL
.
matrixMode
(
LLRender
::
MM_MODELVIEW
);
// Set alpha texture and do lighting modulation
gGL
.
getTexUnit
(
3
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_MULT
,
LLTexUnit
::
TBS_PREV_COLOR
,
LLTexUnit
::
TBS_VERT_COLOR
);
gGL
.
getTexUnit
(
3
)
->
setTextureAlphaBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_TEX_ALPHA
);
gGL
.
getTexUnit
(
0
)
->
activate
();
{
LLGLEnable
blend
(
GL_BLEND
);
drawLoop
();
}
LLVertexBuffer
::
unbind
();
// Disable multitexture
gGL
.
getTexUnit
(
3
)
->
unbind
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
3
)
->
disable
();
gGL
.
getTexUnit
(
3
)
->
activate
();
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
matrixMode
(
LLRender
::
MM_MODELVIEW
);
gGL
.
getTexUnit
(
2
)
->
unbind
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
2
)
->
disable
();
gGL
.
getTexUnit
(
2
)
->
activate
();
glDisable
(
GL_TEXTURE_GEN_S
);
glDisable
(
GL_TEXTURE_GEN_T
);
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
matrixMode
(
LLRender
::
MM_MODELVIEW
);
gGL
.
getTexUnit
(
1
)
->
unbind
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
1
)
->
disable
();
gGL
.
getTexUnit
(
1
)
->
activate
();
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
matrixMode
(
LLRender
::
MM_MODELVIEW
);
// Restore blend state
gGL
.
setSceneBlendType
(
LLRender
::
BT_ALPHA
);
//----------------------------------------------------------------------------
// Restore Texture Unit 0 defaults
gGL
.
getTexUnit
(
0
)
->
activate
();
gGL
.
getTexUnit
(
0
)
->
unbind
(
LLTexUnit
::
TT_TEXTURE
);
glDisable
(
GL_TEXTURE_GEN_S
);
glDisable
(
GL_TEXTURE_GEN_T
);
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
matrixMode
(
LLRender
::
MM_MODELVIEW
);
gGL
.
getTexUnit
(
0
)
->
setTextureBlendType
(
LLTexUnit
::
TB_MULT
);
}
void
LLDrawPoolTerrain
::
renderFull2TU
()
{
// Hack! Get the region that this draw pool is rendering from!
LLViewerRegion
*
regionp
=
mDrawFace
[
0
]
->
getDrawable
()
->
getVObj
()
->
getRegion
();
LLVLComposition
*
compp
=
regionp
->
getComposition
();
// [SL:KB] - Patch: Render-TextureToggle (Catznip-4.0)
LLViewerTexture
*
detail_texture0p
=
(
LLPipeline
::
sRenderTextures
)
?
compp
->
mDetailTextures
[
0
]
:
LLViewerFetchedTexture
::
sDefaultDiffuseImagep
;
LLViewerTexture
*
detail_texture1p
=
(
LLPipeline
::
sRenderTextures
)
?
compp
->
mDetailTextures
[
1
]
:
LLViewerFetchedTexture
::
sDefaultDiffuseImagep
;
LLViewerTexture
*
detail_texture2p
=
(
LLPipeline
::
sRenderTextures
)
?
compp
->
mDetailTextures
[
2
]
:
LLViewerFetchedTexture
::
sDefaultDiffuseImagep
;
LLViewerTexture
*
detail_texture3p
=
(
LLPipeline
::
sRenderTextures
)
?
compp
->
mDetailTextures
[
3
]
:
LLViewerFetchedTexture
::
sDefaultDiffuseImagep
;
// [/SL:KB]
// LLViewerTexture *detail_texture0p = compp->mDetailTextures[0];
// LLViewerTexture *detail_texture1p = compp->mDetailTextures[1];
// LLViewerTexture *detail_texture2p = compp->mDetailTextures[2];
// LLViewerTexture *detail_texture3p = compp->mDetailTextures[3];
LLVector3d
region_origin_global
=
gAgent
.
getRegion
()
->
getOriginGlobal
();
F32
offset_x
=
(
F32
)
fmod
(
region_origin_global
.
mdV
[
VX
],
1.0
/
(
F64
)
sDetailScale
)
*
sDetailScale
;
F32
offset_y
=
(
F32
)
fmod
(
region_origin_global
.
mdV
[
VY
],
1.0
/
(
F64
)
sDetailScale
)
*
sDetailScale
;
LLVector4
tp0
,
tp1
;
tp0
.
setVec
(
sDetailScale
,
0.0
f
,
0.0
f
,
offset_x
);
tp1
.
setVec
(
0.0
f
,
sDetailScale
,
0.0
f
,
offset_y
);
gGL
.
blendFunc
(
LLRender
::
BF_ONE_MINUS_SOURCE_ALPHA
,
LLRender
::
BF_SOURCE_ALPHA
);
//----------------------------------------------------------------------------
// Pass 1/4
//
// Stage 0: Render detail 0 into base
//
gGL
.
getTexUnit
(
0
)
->
bind
(
detail_texture0p
);
glEnable
(
GL_TEXTURE_GEN_S
);
glEnable
(
GL_TEXTURE_GEN_T
);
glTexGeni
(
GL_S
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGeni
(
GL_T
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGenfv
(
GL_S
,
GL_OBJECT_PLANE
,
tp0
.
mV
);
glTexGenfv
(
GL_T
,
GL_OBJECT_PLANE
,
tp1
.
mV
);
gGL
.
getTexUnit
(
0
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_MULT
,
LLTexUnit
::
TBS_TEX_COLOR
,
LLTexUnit
::
TBS_VERT_COLOR
);
drawLoop
();
//----------------------------------------------------------------------------
// Pass 2/4
//
// Stage 0: Generate alpha ramp for detail0/detail1 transition
//
gGL
.
getTexUnit
(
0
)
->
bind
(
m2DAlphaRampImagep
);
glDisable
(
GL_TEXTURE_GEN_S
);
glDisable
(
GL_TEXTURE_GEN_T
);
// Care about alpha only
gGL
.
getTexUnit
(
0
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_PREV_COLOR
);
gGL
.
getTexUnit
(
0
)
->
setTextureAlphaBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_TEX_ALPHA
);
//
// Stage 1: Write detail1
//
gGL
.
getTexUnit
(
1
)
->
bind
(
detail_texture1p
);
gGL
.
getTexUnit
(
1
)
->
enable
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
1
)
->
activate
();
glEnable
(
GL_TEXTURE_GEN_S
);
glEnable
(
GL_TEXTURE_GEN_T
);
glTexGeni
(
GL_S
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGeni
(
GL_T
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGenfv
(
GL_S
,
GL_OBJECT_PLANE
,
tp0
.
mV
);
glTexGenfv
(
GL_T
,
GL_OBJECT_PLANE
,
tp1
.
mV
);
gGL
.
getTexUnit
(
1
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_MULT
,
LLTexUnit
::
TBS_TEX_COLOR
,
LLTexUnit
::
TBS_VERT_COLOR
);
gGL
.
getTexUnit
(
1
)
->
setTextureAlphaBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_PREV_ALPHA
);
gGL
.
getTexUnit
(
0
)
->
activate
();
{
LLGLEnable
blend
(
GL_BLEND
);
drawLoop
();
}
//----------------------------------------------------------------------------
// Pass 3/4
//
// Stage 0: Generate alpha ramp for detail1/detail2 transition
//
gGL
.
getTexUnit
(
0
)
->
bind
(
m2DAlphaRampImagep
);
// Set the texture matrix
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
translatef
(
-
1.
f
,
0.
f
,
0.
f
);
gGL
.
matrixMode
(
LLRender
::
MM_MODELVIEW
);
// Care about alpha only
gGL
.
getTexUnit
(
0
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_PREV_COLOR
);
gGL
.
getTexUnit
(
0
)
->
setTextureAlphaBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_TEX_ALPHA
);
//
// Stage 1: Write detail2
//
gGL
.
getTexUnit
(
1
)
->
bind
(
detail_texture2p
);
gGL
.
getTexUnit
(
1
)
->
enable
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
1
)
->
activate
();
glEnable
(
GL_TEXTURE_GEN_S
);
glEnable
(
GL_TEXTURE_GEN_T
);
glTexGeni
(
GL_S
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGeni
(
GL_T
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGenfv
(
GL_S
,
GL_OBJECT_PLANE
,
tp0
.
mV
);
glTexGenfv
(
GL_T
,
GL_OBJECT_PLANE
,
tp1
.
mV
);
gGL
.
getTexUnit
(
1
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_MULT
,
LLTexUnit
::
TBS_TEX_COLOR
,
LLTexUnit
::
TBS_VERT_COLOR
);
gGL
.
getTexUnit
(
1
)
->
setTextureAlphaBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_PREV_ALPHA
);
{
LLGLEnable
blend
(
GL_BLEND
);
drawLoop
();
}
//----------------------------------------------------------------------------
// Pass 4/4
//
// Stage 0: Generate alpha ramp for detail2/detail3 transition
//
gGL
.
getTexUnit
(
0
)
->
activate
();
gGL
.
getTexUnit
(
0
)
->
bind
(
m2DAlphaRampImagep
);
// Set the texture matrix
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
translatef
(
-
2.
f
,
0.
f
,
0.
f
);
gGL
.
matrixMode
(
LLRender
::
MM_MODELVIEW
);
// Care about alpha only
gGL
.
getTexUnit
(
0
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_PREV_COLOR
);
gGL
.
getTexUnit
(
0
)
->
setTextureAlphaBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_TEX_ALPHA
);
// Stage 1: Write detail3
gGL
.
getTexUnit
(
1
)
->
bind
(
detail_texture3p
);
gGL
.
getTexUnit
(
1
)
->
enable
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
1
)
->
activate
();
glEnable
(
GL_TEXTURE_GEN_S
);
glEnable
(
GL_TEXTURE_GEN_T
);
glTexGeni
(
GL_S
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGeni
(
GL_T
,
GL_TEXTURE_GEN_MODE
,
GL_OBJECT_LINEAR
);
glTexGenfv
(
GL_S
,
GL_OBJECT_PLANE
,
tp0
.
mV
);
glTexGenfv
(
GL_T
,
GL_OBJECT_PLANE
,
tp1
.
mV
);
gGL
.
getTexUnit
(
1
)
->
setTextureColorBlend
(
LLTexUnit
::
TBO_MULT
,
LLTexUnit
::
TBS_TEX_COLOR
,
LLTexUnit
::
TBS_VERT_COLOR
);
gGL
.
getTexUnit
(
1
)
->
setTextureAlphaBlend
(
LLTexUnit
::
TBO_REPLACE
,
LLTexUnit
::
TBS_PREV_ALPHA
);
gGL
.
getTexUnit
(
0
)
->
activate
();
{
LLGLEnable
blend
(
GL_BLEND
);
drawLoop
();
}
// Restore blend state
gGL
.
setSceneBlendType
(
LLRender
::
BT_ALPHA
);
// Disable multitexture
gGL
.
getTexUnit
(
1
)
->
unbind
(
LLTexUnit
::
TT_TEXTURE
);
gGL
.
getTexUnit
(
1
)
->
disable
();
gGL
.
getTexUnit
(
1
)
->
activate
();
glDisable
(
GL_TEXTURE_GEN_S
);
glDisable
(
GL_TEXTURE_GEN_T
);
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
matrixMode
(
LLRender
::
MM_MODELVIEW
);
//----------------------------------------------------------------------------
// Restore Texture Unit 0 defaults
gGL
.
getTexUnit
(
0
)
->
activate
();
gGL
.
getTexUnit
(
0
)
->
unbind
(
LLTexUnit
::
TT_TEXTURE
);
glDisable
(
GL_TEXTURE_GEN_S
);
glDisable
(
GL_TEXTURE_GEN_T
);
gGL
.
matrixMode
(
LLRender
::
MM_TEXTURE
);
gGL
.
loadIdentity
();
gGL
.
matrixMode
(
LLRender
::
MM_MODELVIEW
);
gGL
.
getTexUnit
(
0
)
->
setTextureBlendType
(
LLTexUnit
::
TB_MULT
);
}
void
LLDrawPoolTerrain
::
renderSimple
()
{
LLVector4
tp0
,
tp1
;
...
...
This diff is collapsed.
Click to expand it.
indra/newview/lldrawpoolterrain.h
+
0
−
2
View file @
079281fd
...
...
@@ -79,8 +79,6 @@ class LLDrawPoolTerrain final : public LLFacePool
void
renderSimple
();
void
renderOwnership
();
void
renderFull2TU
();
void
renderFull4TU
();
void
renderFullShader
();
void
drawLoop
();
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment