the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "MemoryTracker.h"
3#include "..\Minecraft.World\IntBuffer.h"
4#include "..\Minecraft.World\ByteBuffer.h"
5#include "..\Minecraft.World\FloatBuffer.h"
6
7unordered_map<int,int> MemoryTracker::GL_LIST_IDS;
8vector<int> MemoryTracker::TEXTURE_IDS;
9
10int MemoryTracker::genLists(int count)
11{
12 int id = glGenLists(count);
13 GL_LIST_IDS.insert( pair<int,int>(id,count) );
14 return id;
15}
16
17int MemoryTracker::genTextures()
18{
19 int id = glGenTextures();
20 TEXTURE_IDS.push_back(id);
21 return id;
22}
23
24void MemoryTracker::releaseLists(int id)
25{
26 AUTO_VAR(it, GL_LIST_IDS.find(id));
27 if( it != GL_LIST_IDS.end() )
28 {
29 glDeleteLists(id, it->second);
30 GL_LIST_IDS.erase(it);
31 }
32}
33
34void MemoryTracker::releaseTextures()
35{
36 for (int i = 0; i < TEXTURE_IDS.size(); i++)
37 {
38 glDeleteTextures(TEXTURE_IDS.at(i));
39 }
40 TEXTURE_IDS.clear();
41}
42
43void MemoryTracker::release()
44{
45 //for (Map.Entry<Integer, Integer> entry : GL_LIST_IDS.entrySet())
46 for(AUTO_VAR(it, GL_LIST_IDS.begin()); it != GL_LIST_IDS.end(); ++it)
47 {
48 glDeleteLists(it->first, it->second);
49 }
50 GL_LIST_IDS.clear();
51
52 releaseTextures();
53}
54
55ByteBuffer *MemoryTracker::createByteBuffer(int size)
56{
57 // 4J - was ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
58 ByteBuffer *bb = ByteBuffer::allocate(size);
59 return bb;
60}
61
62IntBuffer *MemoryTracker::createIntBuffer(int size)
63{
64 return createByteBuffer(size << 2)->asIntBuffer();
65}
66
67FloatBuffer *MemoryTracker::createFloatBuffer(int size)
68{
69 return createByteBuffer(size << 2)->asFloatBuffer();
70}