PARSED FILES:

GpuProgram - PARSED!
TextureState - PARSED!
 - This is just an utility class representing texture state
VertexIndexData - Just data structures
 - VertexCacheProfiler is a weird one, but I think I don't have to remove it as it might come in handy
RenderTexture - Everything OK
RenderWindow - Everything OK
HardwareIndexBuffer - Everything OK
RenderSystemCapabilities - I think I need all of that

TODO FILES:

Camera:
 - Remove auto tracking
 - Merge with Viewport
 - Lod stuff? Probably need to remove as well
 - Num render batches and other statistics
 - Position/rotation should be inherit from transform
 - Listeners

DefaultHardwareBufferManager - Provides emulation of hardware buffers
 - I think this class is okay to stay, although I'm not sure where its used, but its simple enough

Frustum
 - Reflect plane/matrix/methods need to be removed
 - Oblique plane/matrix/methods need to be removed (AKA custom clip plane)
 - Remove orientation stuff because it's iPhone only
 - World space methods need to be updated. I still need them but they need to get their data from Transform

GpuProgramParams - Holds all parameters used in a shader program and allows us to set them by index or name
 - Explore if we can remove GpuSharedParameters. I'm not exactly sure what they're used for

HardwareBuffer - Base class for all buffers
 - Everything seems fine although I /might/ want to explore how the shadow buffer works and if I want to implement it differently?

HardwareBufferManager - Abstracts whether I'm creating D3D9 or OpenGL buffers
 - License stuff needs to be removed. I'm not sure what it's used for

HardwareOcclusionQuery - OK, but I might consider a more generic interface for queries (I'll need profiling queries too for example)

HardwarePixelBuffer 
 - I might consider giving PixelBox a better name. Also rename PixelFormat.h to PixelUtil.h or similar. Makes more sense.
 - _clearSliceRTT method I'm not sure what is it used for, but I might want to remove it

HardwareVertexBuffer - Very neat file
 - VertexDeclaration::getAutoOrganisedDeclaration is my only complaint. It has some vertex/skeletal animation specifics I don't want.

HighLevelGpuProgram - Mostly okay
 - Has some methods for loading from a file, which I wont do

RenderTarget:
 - update() causes rendering to start - This probably need to be moved to camera, as I want it to be responsible for rendering
 - keeps a viewport list, which I also don't think I'll need
 - autoUpdate and various update methods that I probably don't need

Texture
 - mTreatLuminanceAsAlpha and corresponding methods - I dont think I need that or that it's used

Viewport - MERGE WITH CAMERA
 - Remove orientation mode
 - Remove various update/clearEveryFrame methods
 - Remove material scheme
 - Remove Overlays/skies/shadows/visibility mask (I'll be needing all at some point but not now)
 - Remove renderqueue invoication sequence

TODO:
 - Make sure to parse D3D9 implementations of above classes and see what needs removing there as well
 - OpenGL too

IMPORTANT: I think I should strive to make the renderer one unique CmRenderSystem.dll (Log manager, exceptions, math can go in a separate CmUtility library?)
   - Later separate out OpenGL and D3D9 dlls as well, since I want to support D3D11. And I want to keep the framework separate from implementation
     - AND because I need to have it separated since I can't expect DirectX to compile on OSX or Linux

Other notes:
 - Search for all remaining "TODO PORT" comments and fix them
 - Make sure to remove all ogre memory allocators and memory category bullshit (Possibly replace with Camelot versions?)
 - Remove Ogre::String and Ogre::Real (Possibly replace with Camelot versions?)
 - Ogre::ColourValue -> CamelotEngine::Color (Other struct names are okay for the most part)
 - Port all math methods to Camelot
 - Rename all macros and other OGRE references to CM
 - How am I notified on device reset? (When I need to reload my resources)
 - If possible, make sure GLSL uses EntryPoint and Profile fields I have added to GpuProgram
 
 At one point rebuild everything and make sure all warnings are gone
Figure out how to ignore those warnings in NVparse
String stuff should go to a single StringUtil file

After everything is polished:
 - Make sure the renderer can run on a separate thread
 - Get 64bit version working
 - Add Unified shader so I can easily switch between HLSL and GLSL shaders (they need same parameters usually, just different code)
    - Maybe just add support for Cg and force everyone to use that? - I'd like to be able to just switch out renderer in a single location and that everything keeps on working without 
	  further modifications.