Okay, so I'm working on a game, and I've just gotten to the point where I've successfully implemented openGL, SDL and box2d. Cool, cool. Now doing some tests with anti-aliasing, I suddenly realize I got a memory leak.
Here's my main game loop: EDIT: after further testing, I discovered the leak is coming from how I'm drawing the shape using openGL. So here's the code for drawing the box:
EDIT2: Okay, after some more testing, turns out all I needed was to add these two lines after glEnd();
Now I've tried implementing FluidStudios memory manager which looks pretty awesome, but I can't seem to get it to work.
I can access a few variables from the class because it's actually defined as a type in the header file, but then there are these functions that are just floating independently in the header file that I'm not sure how to access.
I tried:
#include "mmgr.h"
extern void m_dumpMemoryReport(const char *, const bool); //Adding this alone without the below lines doesn't give an error
//now trying to access it using only *ONE* of the two bellow
The 'extern void m_dumpMemoryReport(const char *, const bool);' line merely tells the compiler about the existence and signature of a function. The actual compiled code for the function will need to be provided at link time so the linker can connect the dots to form a complete program.
So which library contains the 'm_dumpMemoryReport' function? You need to make sure that is linked in to your project in the same way you have done for OpenGL, SDL, and Box2D. Presumably there's some project/properties dialog in Code::Blocks where additional libraries can be specified(?).
Now's probably a good time to try to read up on the 'separate compilation model' of C and C++. Once you have that understanding, fixing problems like this become very easy.
The 'extern void m_dumpMemoryReport(const char *, const bool);' line merely tells the compiler about the existence and signature of a function. The actual compiled code for the function will need to be provided at link time so the linker can connect the dots to form a complete program.
Ah, how could I have forgotten that. I included the header file, with the names of the functions, but not the actual cpp file which had the bodies of the functions.