Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Alchemy Viewer
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package registry
Operate
Terraform modules
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
Alchemy Viewer
Alchemy Viewer
Commits
532e63e9
Commit
532e63e9
authored
15 years ago
by
David Parks
Browse files
Options
Downloads
Plain Diff
merge
parents
9bdbc10a
8acc6154
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/llrender/llvertexbuffer.cpp
+14
-0
14 additions, 0 deletions
indra/llrender/llvertexbuffer.cpp
indra/llrender/llvertexbuffer.h
+5
-0
5 additions, 0 deletions
indra/llrender/llvertexbuffer.h
with
19 additions
and
0 deletions
indra/llrender/llvertexbuffer.cpp
+
14
−
0
View file @
532e63e9
...
@@ -62,6 +62,7 @@ BOOL LLVertexBuffer::sIBOActive = FALSE;
...
@@ -62,6 +62,7 @@ BOOL LLVertexBuffer::sIBOActive = FALSE;
U32
LLVertexBuffer
::
sAllocatedBytes
=
0
;
U32
LLVertexBuffer
::
sAllocatedBytes
=
0
;
BOOL
LLVertexBuffer
::
sMapped
=
FALSE
;
BOOL
LLVertexBuffer
::
sMapped
=
FALSE
;
BOOL
LLVertexBuffer
::
sUseStreamDraw
=
TRUE
;
BOOL
LLVertexBuffer
::
sUseStreamDraw
=
TRUE
;
S32
LLVertexBuffer
::
sWeight4Loc
=
-
1
;
std
::
vector
<
U32
>
LLVertexBuffer
::
sDeleteList
;
std
::
vector
<
U32
>
LLVertexBuffer
::
sDeleteList
;
...
@@ -76,6 +77,7 @@ S32 LLVertexBuffer::sTypeOffsets[LLVertexBuffer::TYPE_MAX] =
...
@@ -76,6 +77,7 @@ S32 LLVertexBuffer::sTypeOffsets[LLVertexBuffer::TYPE_MAX] =
sizeof
(
LLColor4U
),
// TYPE_COLOR,
sizeof
(
LLColor4U
),
// TYPE_COLOR,
sizeof
(
LLVector3
),
// TYPE_BINORMAL,
sizeof
(
LLVector3
),
// TYPE_BINORMAL,
sizeof
(
F32
),
// TYPE_WEIGHT,
sizeof
(
F32
),
// TYPE_WEIGHT,
sizeof
(
LLVector4
),
// TYPE_WEIGHT4,
sizeof
(
LLVector4
),
// TYPE_CLOTHWEIGHT,
sizeof
(
LLVector4
),
// TYPE_CLOTHWEIGHT,
};
};
...
@@ -1015,6 +1017,12 @@ bool LLVertexBuffer::getWeightStrider(LLStrider<F32>& strider, S32 index)
...
@@ -1015,6 +1017,12 @@ bool LLVertexBuffer::getWeightStrider(LLStrider<F32>& strider, S32 index)
{
{
return
VertexBufferStrider
<
F32
,
TYPE_WEIGHT
>::
get
(
*
this
,
strider
,
index
);
return
VertexBufferStrider
<
F32
,
TYPE_WEIGHT
>::
get
(
*
this
,
strider
,
index
);
}
}
bool
LLVertexBuffer
::
getWeight4Strider
(
LLStrider
<
LLVector4
>&
strider
,
S32
index
)
{
return
VertexBufferStrider
<
LLVector4
,
TYPE_WEIGHT4
>::
get
(
*
this
,
strider
,
index
);
}
bool
LLVertexBuffer
::
getClothWeightStrider
(
LLStrider
<
LLVector4
>&
strider
,
S32
index
)
bool
LLVertexBuffer
::
getClothWeightStrider
(
LLStrider
<
LLVector4
>&
strider
,
S32
index
)
{
{
return
VertexBufferStrider
<
LLVector4
,
TYPE_CLOTHWEIGHT
>::
get
(
*
this
,
strider
,
index
);
return
VertexBufferStrider
<
LLVector4
,
TYPE_CLOTHWEIGHT
>::
get
(
*
this
,
strider
,
index
);
...
@@ -1284,6 +1292,12 @@ void LLVertexBuffer::setupVertexBuffer(U32 data_mask) const
...
@@ -1284,6 +1292,12 @@ void LLVertexBuffer::setupVertexBuffer(U32 data_mask) const
{
{
glVertexAttribPointerARB
(
1
,
1
,
GL_FLOAT
,
FALSE
,
stride
,
(
void
*
)(
base
+
mOffsets
[
TYPE_WEIGHT
]));
glVertexAttribPointerARB
(
1
,
1
,
GL_FLOAT
,
FALSE
,
stride
,
(
void
*
)(
base
+
mOffsets
[
TYPE_WEIGHT
]));
}
}
if
(
data_mask
&
MAP_WEIGHT4
&&
sWeight4Loc
!=
-
1
)
{
glVertexAttribPointerARB
(
sWeight4Loc
,
4
,
GL_FLOAT
,
FALSE
,
stride
,
(
void
*
)(
base
+
mOffsets
[
TYPE_WEIGHT4
]));
}
if
(
data_mask
&
MAP_CLOTHWEIGHT
)
if
(
data_mask
&
MAP_CLOTHWEIGHT
)
{
{
glVertexAttribPointerARB
(
4
,
4
,
GL_FLOAT
,
TRUE
,
stride
,
(
void
*
)(
base
+
mOffsets
[
TYPE_CLOTHWEIGHT
]));
glVertexAttribPointerARB
(
4
,
4
,
GL_FLOAT
,
TRUE
,
stride
,
(
void
*
)(
base
+
mOffsets
[
TYPE_CLOTHWEIGHT
]));
...
...
This diff is collapsed.
Click to expand it.
indra/llrender/llvertexbuffer.h
+
5
−
0
View file @
532e63e9
...
@@ -84,6 +84,8 @@ class LLVertexBuffer : public LLRefCount
...
@@ -84,6 +84,8 @@ class LLVertexBuffer : public LLRefCount
static
LLVBOPool
sStreamIBOPool
;
static
LLVBOPool
sStreamIBOPool
;
static
LLVBOPool
sDynamicIBOPool
;
static
LLVBOPool
sDynamicIBOPool
;
static
S32
sWeight4Loc
;
static
BOOL
sUseStreamDraw
;
static
BOOL
sUseStreamDraw
;
static
void
initClass
(
bool
use_vbo
);
static
void
initClass
(
bool
use_vbo
);
...
@@ -109,6 +111,7 @@ class LLVertexBuffer : public LLRefCount
...
@@ -109,6 +111,7 @@ class LLVertexBuffer : public LLRefCount
// These use VertexAttribPointer and should possibly be made generic
// These use VertexAttribPointer and should possibly be made generic
TYPE_BINORMAL
,
TYPE_BINORMAL
,
TYPE_WEIGHT
,
TYPE_WEIGHT
,
TYPE_WEIGHT4
,
TYPE_CLOTHWEIGHT
,
TYPE_CLOTHWEIGHT
,
TYPE_MAX
,
TYPE_MAX
,
TYPE_INDEX
,
TYPE_INDEX
,
...
@@ -124,6 +127,7 @@ class LLVertexBuffer : public LLRefCount
...
@@ -124,6 +127,7 @@ class LLVertexBuffer : public LLRefCount
// These use VertexAttribPointer and should possibly be made generic
// These use VertexAttribPointer and should possibly be made generic
MAP_BINORMAL
=
(
1
<<
TYPE_BINORMAL
),
MAP_BINORMAL
=
(
1
<<
TYPE_BINORMAL
),
MAP_WEIGHT
=
(
1
<<
TYPE_WEIGHT
),
MAP_WEIGHT
=
(
1
<<
TYPE_WEIGHT
),
MAP_WEIGHT4
=
(
1
<<
TYPE_WEIGHT4
),
MAP_CLOTHWEIGHT
=
(
1
<<
TYPE_CLOTHWEIGHT
),
MAP_CLOTHWEIGHT
=
(
1
<<
TYPE_CLOTHWEIGHT
),
};
};
...
@@ -173,6 +177,7 @@ class LLVertexBuffer : public LLRefCount
...
@@ -173,6 +177,7 @@ class LLVertexBuffer : public LLRefCount
bool
getBinormalStrider
(
LLStrider
<
LLVector3
>&
strider
,
S32
index
=
0
);
bool
getBinormalStrider
(
LLStrider
<
LLVector3
>&
strider
,
S32
index
=
0
);
bool
getColorStrider
(
LLStrider
<
LLColor4U
>&
strider
,
S32
index
=
0
);
bool
getColorStrider
(
LLStrider
<
LLColor4U
>&
strider
,
S32
index
=
0
);
bool
getWeightStrider
(
LLStrider
<
F32
>&
strider
,
S32
index
=
0
);
bool
getWeightStrider
(
LLStrider
<
F32
>&
strider
,
S32
index
=
0
);
bool
getWeight4Strider
(
LLStrider
<
LLVector4
>&
strider
,
S32
index
=
0
);
bool
getClothWeightStrider
(
LLStrider
<
LLVector4
>&
strider
,
S32
index
=
0
);
bool
getClothWeightStrider
(
LLStrider
<
LLVector4
>&
strider
,
S32
index
=
0
);
BOOL
isEmpty
()
const
{
return
mEmpty
;
}
BOOL
isEmpty
()
const
{
return
mEmpty
;
}
...
...
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