aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llvosurfacepatch.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/newview/llvosurfacepatch.h38
1 files changed, 29 insertions, 9 deletions
diff --git a/linden/indra/newview/llvosurfacepatch.h b/linden/indra/newview/llvosurfacepatch.h
index 3549571..75d57cb 100644
--- a/linden/indra/newview/llvosurfacepatch.h
+++ b/linden/indra/newview/llvosurfacepatch.h
@@ -35,9 +35,19 @@ class LLSurfacePatch;
35class LLDrawPool; 35class LLDrawPool;
36class LLVector2; 36class LLVector2;
37 37
38class LLVOSurfacePatch : public LLViewerObject 38class LLVOSurfacePatch : public LLStaticViewerObject
39{ 39{
40public: 40public:
41 enum
42 {
43 VERTEX_DATA_MASK = (1 << LLVertexBuffer::TYPE_VERTEX) |
44 (1 << LLVertexBuffer::TYPE_NORMAL) |
45 (1 << LLVertexBuffer::TYPE_TEXCOORD) |
46 (1 << LLVertexBuffer::TYPE_TEXCOORD2) |
47 (1 << LLVertexBuffer::TYPE_COLOR)
48 }
49 eVertexDataMask;
50
41 LLVOSurfacePatch(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); 51 LLVOSurfacePatch(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp);
42 virtual ~LLVOSurfacePatch(); 52 virtual ~LLVOSurfacePatch();
43 53
@@ -46,8 +56,18 @@ public:
46 // Initialize data that's only inited once per class. 56 // Initialize data that's only inited once per class.
47 static void initClass(); 57 static void initClass();
48 58
59 virtual U32 getPartitionType() const;
60
49 /*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline); 61 /*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline);
50 /*virtual*/ BOOL updateGeometry(LLDrawable *drawable); 62 /*virtual*/ BOOL updateGeometry(LLDrawable *drawable);
63 /*virtual*/ BOOL updateLOD();
64 /*virtual*/ void updateFaceSize(S32 idx);
65 void getGeometry(LLStrider<LLVector3> &verticesp,
66 LLStrider<LLVector3> &normalsp,
67 LLStrider<LLColor4U> &colorsp,
68 LLStrider<LLVector2> &texCoords0p,
69 LLStrider<LLVector2> &texCoords1p,
70 LLStrider<U32> &indicesp);
51 71
52 /*virtual*/ void updateTextures(LLAgent &agent); 72 /*virtual*/ void updateTextures(LLAgent &agent);
53 /*virtual*/ void setPixelAreaAndAngle(LLAgent &agent); // generate accurate apparent angle and area 73 /*virtual*/ void setPixelAreaAndAngle(LLAgent &agent); // generate accurate apparent angle and area
@@ -63,8 +83,8 @@ public:
63 83
64 BOOL mDirtiedPatch; 84 BOOL mDirtiedPatch;
65protected: 85protected:
66 LLDrawPool *mPool; 86 LLFacePool *mPool;
67 LLDrawPool *getPool(); 87 LLFacePool *getPool();
68 S32 mBaseComp; 88 S32 mBaseComp;
69 LLSurfacePatch *mPatchp; 89 LLSurfacePatch *mPatchp;
70 BOOL mDirtyTexture; 90 BOOL mDirtyTexture;
@@ -89,24 +109,24 @@ protected:
89 LLStrider<LLColor4U> &colorsp, 109 LLStrider<LLColor4U> &colorsp,
90 LLStrider<LLVector2> &texCoords0p, 110 LLStrider<LLVector2> &texCoords0p,
91 LLStrider<LLVector2> &texCoords1p, 111 LLStrider<LLVector2> &texCoords1p,
92 U32* &indicesp, 112 LLStrider<U32> &indicesp,
93 S32 &index_offset); 113 U32 &index_offset);
94 void updateNorthGeometry(LLFace *facep, 114 void updateNorthGeometry(LLFace *facep,
95 LLStrider<LLVector3> &verticesp, 115 LLStrider<LLVector3> &verticesp,
96 LLStrider<LLVector3> &normalsp, 116 LLStrider<LLVector3> &normalsp,
97 LLStrider<LLColor4U> &colorsp, 117 LLStrider<LLColor4U> &colorsp,
98 LLStrider<LLVector2> &texCoords0p, 118 LLStrider<LLVector2> &texCoords0p,
99 LLStrider<LLVector2> &texCoords1p, 119 LLStrider<LLVector2> &texCoords1p,
100 U32* &indicesp, 120 LLStrider<U32> &indicesp,
101 S32 &index_offset); 121 U32 &index_offset);
102 void updateEastGeometry(LLFace *facep, 122 void updateEastGeometry(LLFace *facep,
103 LLStrider<LLVector3> &verticesp, 123 LLStrider<LLVector3> &verticesp,
104 LLStrider<LLVector3> &normalsp, 124 LLStrider<LLVector3> &normalsp,
105 LLStrider<LLColor4U> &colorsp, 125 LLStrider<LLColor4U> &colorsp,
106 LLStrider<LLVector2> &texCoords0p, 126 LLStrider<LLVector2> &texCoords0p,
107 LLStrider<LLVector2> &texCoords1p, 127 LLStrider<LLVector2> &texCoords1p,
108 U32* &indicesp, 128 LLStrider<U32> &indicesp,
109 S32 &index_offset); 129 U32 &index_offset);
110}; 130};
111 131
112#endif // LL_VOSURFACEPATCH_H 132#endif // LL_VOSURFACEPATCH_H