Files
minecraft-pe-0.6.1/src/client/renderer/Tesselator.h
Shredder aa9fa659df Extremely Big Update - fileshredder
(MAJOR)Added Java Beta/Normal Shading, toggleble in settings

Fixed and restored the unused Item Switching Animation, toggleble in tweaks too

Added Dynamic Texture for Lava

Added option to use Block Outline Selection which was unused normally

Added Split Touch Controls into Options

Mobs will now drop cooked variants of their meat if they died by fire

Fixed Untranslated Strings in Settings

(MAJOR) Ravines and Lava/Water pools have been fixed and renabled

Tweaked BasicTree to hopefully speed up generation a bit, might disable them temporarily if they keep being slow

You can now grow Fancy Oak Trees using saplings.
2026-04-11 14:45:47 +05:00

131 lines
2.6 KiB
C++
Executable File

#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 VertexDeclPTCN 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__*/