Files
minecraft-pe-0.6.1/src/client/renderer/GameRenderer.hpp
2026-04-04 14:33:56 +03:00

116 lines
2.2 KiB
C++
Executable File

#pragma once
//package net.minecraft.client.renderer;
#include "gles.hpp"
#include <cstddef>
#include "util/SmoothFloat.hpp"
#include "world/phys/Vec3.hpp"
#include "client/gui/components/ImageButton.hpp"
class MinecraftClient;
class Entity;
class ItemInHandRenderer;
class LevelRenderer;
class GameRenderer
{
public:
GameRenderer(MinecraftClient& mc_);
~GameRenderer();
void pick(float a);
void updateAllChunks();
void zoomRegion(float zoom, float xa, float ya);
void unZoomRegion();
void setupGuiScreen(bool clearColorBuffer);
void tick(int nTick, int maxTick);
void render(float a);
void renderLevel(float a);
void renderItemInHand(float a, int eye);
void onGraphicsReset();
void setupCamera(float a, int eye);
void moveCameraToPlayer(float a);
void setupClearColor(float a);
float getFov(float a, bool applyEffects);
private:
void setupFog(int i);
void tickFov();
void bobHurt(float a);
void bobView(float a);
bool updateFreeformPickDirection(float a, Vec3& outDir);
void prepareAndRenderClouds(LevelRenderer* levelRenderer, float a);
public:
ItemInHandRenderer* itemInHandRenderer;
private:
MinecraftClient& mc;
float renderDistance;
int _tick;
Vec3 pickDirection;
// smooth camera movement
SmoothFloat smoothTurnX;
SmoothFloat smoothTurnY;
// // third-person distance etc
// SmoothFloat smoothDistance = /*new*/ SmoothFloat();
// SmoothFloat smoothRotation = /*new*/ SmoothFloat();
// SmoothFloat smoothTilt = /*new*/ SmoothFloat();
// SmoothFloat smoothRoll = /*new*/ SmoothFloat();
float thirdDistance;
float thirdDistanceO;
float thirdRotation;
float thirdRotationO;
float thirdTilt;
float thirdTiltO;
// zoom
float zoom;
float zoom_x;
float zoom_y;
// fov modification
float fov, oFov;
float fovOffset;
float fovOffsetO;
float _setupCameraFov;
// roll modification
float cameraRoll;
float cameraRollO;
float fr;
float fg;
float fb;
float fogBrO, fogBr;
float _rotX;
float _rotY;
float _rotXlast;
float _rotYlast;
float _lastTickT;
void saveMatrices();
float lastProjMatrix[16];
float lastModelMatrix[16];
// Scissor area that Minecraft::screen defines
bool useScreenScissor;
IntRectangle screenScissorArea;
};