Revert "a bunch of junk, merging 'shitty' branch"

This reverts commit c68cbfa37b.
This commit is contained in:
BZLZHH
2025-05-17 11:13:31 +08:00
parent 9297542dcf
commit 3b1ab8d9d9
14 changed files with 10 additions and 797 deletions
@@ -3,45 +3,12 @@
//
#include "GL_Drawing.h"
#include "../../../../MG_RHI/GLES/RHI.h"
namespace MG_GL::GL {
// This is a test function that directly draws textures.
void DrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices) {
// ::GLES::glViewport(0,0,3200,1440);
// MG_RHI::GLES::Test::DrawAllTextures();
VertexArrayState* vaState = MG_State_T::vertexArrayState;
VertexArrayObject* vao = &vaState->vaos_[vaState->currentVao_];
auto& rhi = MG_RHI::GLES::RHI::GetInstance();
rhi.TransitionTo(MG_RHI::GLES::State::DrawElements);
if (vao->elementBuffer != 0 && indices != nullptr) {
static GLuint dynamicIBO = 0;
if (dynamicIBO == 0) {
MGL_TRY(::GLES::glGenBuffers(1, &dynamicIBO);)
}
size_t typeSize = 0;
switch(type) {
case GL_UNSIGNED_BYTE: typeSize = sizeof(GLubyte); break;
case GL_UNSIGNED_SHORT: typeSize = sizeof(GLushort); break;
case GL_UNSIGNED_INT: typeSize = sizeof(GLuint); break;
}
size_t dataSize = count * typeSize;
MGL_TRY(::GLES::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, dynamicIBO);)
MGL_TRY(::GLES::glBufferData(GL_ELEMENT_ARRAY_BUFFER, dataSize, indices, GL_STREAM_DRAW);)
}
if (vao->elementBuffer != 0 || indices != nullptr) {
MGL_TRY(::GLES::glDrawElements(
mode,
count,
type,
indices
);)
}
::GLES::glViewport(0,0,3200,1440);
MG_RHI::GLES::Test::DrawAllTextures();
};
void DrawArrays(GLenum mode, GLint first, GLsizei count) {
::GLES::glViewport(0,0,3200,1440);
+1 -1
View File
@@ -32,7 +32,7 @@ public:
void Delete(GLuint buffer);
GLuint GetCurrentBinding(GLenum target) const;
public: // TODO
private:
std::unordered_map<GLuint, BufferObject> buffers_;
std::set<GLuint> freeIds_;
GLuint lastId_ = 0;
+1 -1
View File
@@ -9,7 +9,7 @@
#include "../../../Includes.h"
class CommonState {
public: // TODO
private:
// Pixel storage parameters
std::unordered_map<GLenum, GLint> pixelStoreParams;
@@ -35,7 +35,7 @@ public:
GLenum glValidateCompleteness(GLenum target);
FramebufferObject* GetCurrentFBO(GLenum target);
public: // TODO
private:
std::unordered_map<GLuint, FramebufferObject> framebuffers_;
std::unordered_map<GLenum, GLuint> currentBindings_; // READ/DRAW/FRAMEBUFFER
std::set<GLuint> freeIds_;
+1 -1
View File
@@ -47,7 +47,7 @@ struct ProgramObject {
};
class ProgramState {
public: // TODO
private:
std::unordered_map<GLuint, ShaderObject> shaders_;
std::unordered_map<GLuint, ProgramObject> programs_;
std::set<GLuint> freeShaderIds_;
+1 -1
View File
@@ -54,7 +54,7 @@ public:
};
class TextureState {
public: // TODO
private:
std::vector<TextureUnitState> textureUnits_;
GLuint activeTextureUnit_ = 0;
@@ -19,7 +19,7 @@ GLenum VertexArrayState::Create(GLuint* array) {
}
*array = id;
// vaos_[id].generated = true;
vaos_[id].generated = true;
return GL_NO_ERROR;
}
@@ -41,9 +41,8 @@ GLenum VertexArrayState::CreateN(GLsizei n, GLuint* arrays) {
}
GLenum VertexArrayState::Bind(GLuint array) {
if (array != 0 && vaos_.find(array) == vaos_.end()) return GL_INVALID_OPERATION;
if (array != 0 && !vaos_.count(array)) return GL_INVALID_OPERATION;
currentVao_ = array;
GetCurrentVAO()->generated = true;
return GL_NO_ERROR;
}
@@ -43,7 +43,7 @@ public:
GLuint GetBoundElementBuffer();
VertexArrayObject* GetCurrentVAO();
public: // TODO
private:
std::unordered_map<GLuint, VertexArrayObject> vaos_;
std::set<GLuint> freeIds_;
GLuint lastId_ = 0;