mirror of
https://gitea.sffempire.ru/Kolyah35/minecraft-pe-0.6.1.git
synced 2026-03-20 23:13:33 +00:00
the whole game
This commit is contained in:
130
src/client/renderer/Tesselator.h
Executable file
130
src/client/renderer/Tesselator.h
Executable file
@@ -0,0 +1,130 @@
|
||||
#ifndef NET_MINECRAFT_CLIENT_RENDERER__Tesselator_H__
|
||||
#define NET_MINECRAFT_CLIENT_RENDERER__Tesselator_H__
|
||||
|
||||
//package net.minecraft.client.renderer;
|
||||
|
||||
#include <map>
|
||||
#include "RenderChunk.h"
|
||||
#include "gles.h"
|
||||
#include "VertecDecl.h"
|
||||
|
||||
extern const int VertexSizeBytes;
|
||||
|
||||
typedef VertexDeclPTC VERTEX;
|
||||
typedef std::map<GLuint, GLsizei> IntGLMap;
|
||||
|
||||
|
||||
class Tesselator
|
||||
{
|
||||
static const int MAX_MEMORY_USE = 16 * 1024 * 1024;
|
||||
static const int MAX_FLOATS = MAX_MEMORY_USE / 4 / 2;
|
||||
|
||||
Tesselator(int size);
|
||||
|
||||
public:
|
||||
static const int ACCESS_DYNAMIC = 1;
|
||||
static const int ACCESS_STATIC = 2;
|
||||
|
||||
static Tesselator instance;
|
||||
|
||||
~Tesselator();
|
||||
|
||||
void init();
|
||||
void clear();
|
||||
|
||||
void begin();
|
||||
void begin(int mode);
|
||||
void draw();
|
||||
RenderChunk end(bool useMine, int bufferId);
|
||||
|
||||
void color(int c);
|
||||
void color(int c, int alpha);
|
||||
void color(float r, float g, float b);
|
||||
void color(float r, float g, float b, float a);
|
||||
void color(int r, int g, int b);
|
||||
void color(int r, int g, int b, int a);
|
||||
void color(char r, char g, char b);
|
||||
void colorABGR( int c );
|
||||
|
||||
void normal(float x, float y, float z);
|
||||
void voidBeginAndEndCalls(bool doVoid);
|
||||
|
||||
void tex(float u, float v);
|
||||
|
||||
void vertex(float x, float y, float z);
|
||||
void vertexUV(float x, float y, float z, float u, float v);
|
||||
|
||||
void scale2d(float x, float y);
|
||||
void resetScale();
|
||||
|
||||
void noColor();
|
||||
void enableColor();
|
||||
private:
|
||||
void setAccessMode(int mode);
|
||||
public:
|
||||
|
||||
void offset(float xo, float yo, float zo);
|
||||
void offset(const Vec3& v);
|
||||
void addOffset(float x, float y, float z);
|
||||
void addOffset(const Vec3& v);
|
||||
|
||||
int getVboCount();
|
||||
|
||||
int getColor();
|
||||
|
||||
__inline void beginOverride() {
|
||||
begin();
|
||||
voidBeginAndEndCalls(true);
|
||||
}
|
||||
__inline void endOverrideAndDraw() {
|
||||
voidBeginAndEndCalls(false);
|
||||
draw();
|
||||
}
|
||||
__inline bool isOverridden() {
|
||||
return _voidBeginEnd;
|
||||
}
|
||||
__inline RenderChunk endOverride(int bufferId) {
|
||||
voidBeginAndEndCalls(false);
|
||||
return end(true, bufferId);
|
||||
}
|
||||
|
||||
private:
|
||||
Tesselator(const Tesselator& rhs) {}
|
||||
Tesselator& operator=(const Tesselator& rhs) { return *this; }
|
||||
VERTEX* _varray;
|
||||
|
||||
int vertices;
|
||||
|
||||
float xo, yo, zo;
|
||||
float u, v;
|
||||
unsigned int _color;
|
||||
int _normal;
|
||||
float _sx, _sy;
|
||||
|
||||
bool hasColor;
|
||||
bool hasTexture;
|
||||
bool hasNormal;
|
||||
bool _noColor;
|
||||
bool _voidBeginEnd;
|
||||
|
||||
int p;
|
||||
int count;
|
||||
|
||||
bool tesselating;
|
||||
|
||||
bool vboMode;
|
||||
int vboCounts;
|
||||
int vboId;
|
||||
GLuint* vboIds;
|
||||
|
||||
int size;
|
||||
int totalSize;
|
||||
int maxVertices;
|
||||
|
||||
int mode;
|
||||
int accessMode;
|
||||
|
||||
IntGLMap map;
|
||||
};
|
||||
|
||||
#endif /*NET_MINECRAFT_CLIENT_RENDERER__Tesselator_H__*/
|
||||
Reference in New Issue
Block a user