mirror of
https://github.com/celisej567/mcpe.git
synced 2026-01-03 05:49:04 +03:00
* Visual Studio Project Overhaul + Cleanup * SDL2 project for Windows * Re-added game client icon to SDL2 code * Renamed "AppPlatform_windows" to "AppPlatform_win32" (this is the name of the Windows API and is not representative of the architecture type) * Renamed "LoggerWindows" to "LoggerWin32" * Renamed "SoundSystemWindows to "SoundSystemDS" (DirectSound). This may be used for the 360, so it wouldn't really be Windows-specific then. * Moved "ClientSideNetworkHandler" from "network" to "client/network". We don't need it being compiled for the server if the client's the only thing that needs it. * I wonder if this still works on macOS... * Bugfixes & Fixed for macOS * Options::savePropertiesToFile Logging Bugfix * Silence Winsock Deprecation Warnings in RakNet * VS Project Improvements - Replaced 50 billion relative paths with $(MC_ROOT) - Added $(RAKNET_PATH) variable to override RakNet location - Re-added gitignore for .vcxproj.user files - Added debugging config to Directory.Builds.props - Slimmed down project configurations for SDL2 * VS Project Config Bugfixes - Fixed RakNet header path for additional includes * RakNet Target for XCode * XCode Project Config Fixes * Packet logging * Network VS Project Filter Fix * Fix RakNet Packet ID Length We previously didn't have consistency between old and new C++ regarding PacketType enum length. Now we do. This is required or else it completely breaks networking between the versions. * Additional RakNet Error Handling * Disable packet logging * * Fix CMakeLists.txt This reflects the relocation of ClientSideNetworkHandler.cpp. * * Also add renderer/GL/GL.cpp to the CMakeLists.txt * * Replace libpng with stb_image * * Fix buggy water behavior. * * Put the CMakeLists of the SDL project in debug mode * Visual Studio 2010 Support * * Change the SdlIoCallbacks from an array to a single member. This fixes compilation of the sdl2 target on VS. * * Fix missing _error label. * Revert "* Fix missing _error label." This reverts commit 99a057fc84049a16c864bd840fb439a008af5c74. * Revert "* Replace libpng with stb_image" * info_updateGame Tiles --------- Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com> Co-authored-by: iProgramInCpp <iprogramincpp@gmail.com>
101 lines
2.1 KiB
C++
101 lines
2.1 KiB
C++
/********************************************************************
|
|
Minecraft: Pocket Edition - Decompilation Project
|
|
Copyright (C) 2023 iProgramInCpp
|
|
|
|
The following code is licensed under the BSD 1 clause license.
|
|
SPDX-License-Identifier: BSD-1-Clause
|
|
********************************************************************/
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <map>
|
|
#include "thirdparty/GL/GL.hpp"
|
|
#include "RenderChunk.hpp"
|
|
|
|
#define GET_RED(c) (uint8_t(((c) >> 0) & 0xFF))
|
|
#define GET_GREEN(c) (uint8_t(((c) >> 8) & 0xFF))
|
|
#define GET_BLUE(c) (uint8_t(((c) >> 16) & 0xFF))
|
|
#define GET_ALPHA(c) (uint8_t(((c) >> 24) & 0xFF))
|
|
|
|
class Tesselator
|
|
{
|
|
public:
|
|
static Tesselator instance; // singleton
|
|
|
|
public:
|
|
struct Vertex
|
|
{
|
|
// position
|
|
float m_x;
|
|
float m_y;
|
|
float m_z;
|
|
// texture mapping coords
|
|
float m_u;
|
|
float m_v;
|
|
// RGBA color
|
|
uint32_t m_color;
|
|
};
|
|
|
|
public:
|
|
Tesselator(int allotedSize = 0x800000);
|
|
~Tesselator();
|
|
|
|
void addOffset(float x, float y, float z);
|
|
void begin();
|
|
void begin(int accessMode);
|
|
void clear();
|
|
void color(int c);
|
|
void color(int c, int 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 color(float r, float g, float b);
|
|
void color(float r, float g, float b, float a);
|
|
void draw();
|
|
int getVboCount();
|
|
void init();
|
|
void noColor();
|
|
void normal(float, float, float);
|
|
void offset(float, float, float);
|
|
void setAccessMode(int mode); // sets m_DrawArraysMode
|
|
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 voidBeginAndEndCalls(bool b);
|
|
|
|
RenderChunk end(int);
|
|
|
|
public:
|
|
Vertex* m_pVertices;
|
|
int field_4;
|
|
float m_offsetX;
|
|
float m_offsetY;
|
|
float m_offsetZ;
|
|
|
|
float m_nextVtxU;
|
|
float m_nextVtxV;
|
|
uint32_t m_nextVtxColor;
|
|
|
|
bool m_bHaveColor;
|
|
bool m_bHaveTex;
|
|
bool field_26;
|
|
bool m_bBlockColor;
|
|
bool field_28;
|
|
int field_2C;
|
|
int field_30;
|
|
bool field_34;
|
|
|
|
int m_vboCount;
|
|
int field_3C;
|
|
GLuint* m_pVBOs;
|
|
|
|
int field_48;
|
|
int m_maxVertices;
|
|
GLuint m_drawArraysMode;
|
|
int m_accessMode;
|
|
|
|
std::map<uint32_t, uint32_t> m_VboIdxToRenderChunkID;
|
|
};
|
|
|