mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-06-22 14:27:47 +00:00
restructure codebase according to vcproj filters
This commit is contained in:
59
Minecraft.Client/net/minecraft/client/MemoryTracker.cpp
Normal file
59
Minecraft.Client/net/minecraft/client/MemoryTracker.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
#include "../../../../Minecraft.World/Header Files/stdafx.h"
|
||||
#include "MemoryTracker.h"
|
||||
#include "../../../../Minecraft.World/ConsoleJavaLibs/IntBuffer.h"
|
||||
#include "../../../../Minecraft.World/ConsoleJavaLibs/ByteBuffer.h"
|
||||
#include "../../../../Minecraft.World/ConsoleJavaLibs/FloatBuffer.h"
|
||||
|
||||
std::unordered_map<int, int> MemoryTracker::GL_LIST_IDS;
|
||||
std::vector<int> MemoryTracker::TEXTURE_IDS;
|
||||
|
||||
int MemoryTracker::genLists(int count) {
|
||||
int id = glGenLists(count);
|
||||
GL_LIST_IDS.insert(std::pair<int, int>(id, count));
|
||||
return id;
|
||||
}
|
||||
|
||||
int MemoryTracker::genTextures() {
|
||||
int id = glGenTextures();
|
||||
TEXTURE_IDS.push_back(id);
|
||||
return id;
|
||||
}
|
||||
|
||||
void MemoryTracker::releaseLists(int id) {
|
||||
auto it = GL_LIST_IDS.find(id);
|
||||
if (it != GL_LIST_IDS.end()) {
|
||||
glDeleteLists(id, it->second);
|
||||
GL_LIST_IDS.erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
void MemoryTracker::releaseTextures() {
|
||||
for (int i = 0; i < TEXTURE_IDS.size(); i++) {
|
||||
glDeleteTextures(TEXTURE_IDS.at(i));
|
||||
}
|
||||
TEXTURE_IDS.clear();
|
||||
}
|
||||
|
||||
void MemoryTracker::release() {
|
||||
// for (Map.Entry<Integer, Integer> entry : GL_LIST_IDS.entrySet())
|
||||
for (auto it = GL_LIST_IDS.begin(); it != GL_LIST_IDS.end(); ++it) {
|
||||
glDeleteLists(it->first, it->second);
|
||||
}
|
||||
GL_LIST_IDS.clear();
|
||||
|
||||
releaseTextures();
|
||||
}
|
||||
|
||||
ByteBuffer* MemoryTracker::createByteBuffer(int size) {
|
||||
// 4J - was ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
|
||||
ByteBuffer* bb = ByteBuffer::allocate(size);
|
||||
return bb;
|
||||
}
|
||||
|
||||
IntBuffer* MemoryTracker::createIntBuffer(int size) {
|
||||
return createByteBuffer(size << 2)->asIntBuffer();
|
||||
}
|
||||
|
||||
FloatBuffer* MemoryTracker::createFloatBuffer(int size) {
|
||||
return createByteBuffer(size << 2)->asFloatBuffer();
|
||||
}
|
||||
Reference in New Issue
Block a user