//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // MLRTexturePool::MLRTexturePool(GOSImagePool *image_pool, int insDep): RegisteredClass(DefaultData) { Check_Object(image_pool); Verify(gos_GetCurrentHeap() == Heap); instanceDepth = insDep; instanceMax = 1<<insDep; handleDepth = MLRState::TextureNumberBits - insDep; handleMax = 1<<handleDepth; freeHandle = new int [handleMax]; Register_Pointer(freeHandle); lastHandle = 0; firstFreeHandle = 0; lastFreeHandle = 0; storedTextures = 0; imagePool = image_pool; for(int i=0;i<MLRState::TextureMask+1;i++) { textureArray[i] = NULL; } unLoadedImages = false; }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void MLRIndexedTriangleCloud::InitializeClass() { Verify(!DefaultData); Verify(gos_GetCurrentHeap() == StaticHeap); DefaultData = new ClassData( MLRIndexedTriangleCloudClassID, "MidLevelRenderer::MLRIndexedTriangleCloud", MLRTriangleCloud::DefaultData ); Register_Object(DefaultData); clipExtraIndex = new DynamicArrayOf<unsigned short> (Limits::Max_Number_Vertices_Per_Mesh); Register_Pointer(clipExtraIndex); clipExtraTexCoords = new DynamicArrayOf<Vector2DScalar> (Limits::Max_Number_Vertices_Per_Mesh); Register_Pointer(clipExtraTexCoords); visibleIndexedVertices = new DynamicArrayOf<unsigned char> (Limits::Max_Number_Vertices_Per_Mesh); Register_Pointer(visibleIndexedVertices); }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void MLRLightMap::InitializeClass() { Verify(!DefaultData); Verify(gos_GetCurrentHeap() == StaticHeap); DefaultData = new ClassData( MLRLightMapClassID, "MidLevelRenderer::MLRLightMap", RegisteredClass::DefaultData ); Register_Object(DefaultData); unsigned char *ptr = new unsigned char [Limits::Max_Size_Of_LightMap_MemoryStream]; Register_Pointer(ptr); stream = new MemoryStream(ptr, Limits::Max_Size_Of_LightMap_MemoryStream); Register_Object(stream); transformedCoords = new DynamicArrayOf<Stuff::Vector4D> (Limits::Max_Number_Vertices_Per_Polygon); Register_Object(transformedCoords); clipExtraCoords = new DynamicArrayOf<Stuff::Vector4D> (2*Limits::Max_Number_Vertices_Per_Polygon); Register_Object(clipExtraCoords); clipExtraColors = new DynamicArrayOf<RGBAColor> (2*Limits::Max_Number_Vertices_Per_Polygon); Register_Object(clipExtraColors); clipExtraTexCoords = new DynamicArrayOf<Vector2DScalar> (2*Limits::Max_Number_Vertices_Per_Polygon); Register_Object(clipExtraTexCoords); clippingStates = new DynamicArrayOf<MLRClippingState> (Limits::Max_Number_Vertices_Per_Polygon); Register_Object(clippingStates); clipBuffer = new ClipPolygon2 [2]; Register_Pointer(clipBuffer); clipBuffer[0].Init(Limits::Max_Number_Of_Multitextures); clipBuffer[1].Init(Limits::Max_Number_Of_Multitextures); }
// //########################################################################### // BuildHashTable //########################################################################### // void Hash::BuildHashTable() { Check_Signature(this); int i; hashTable = new SortedChain*[hashTableSize]; Register_Pointer(hashTable); for (i = 0; i < hashTableSize; i++) { Check_Pointer(hashTable); Verify_Index(i); hashTable[i] = NULL; } }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void MLRTexturePool::Restart (void) { Verify(gos_GetCurrentHeap() == Heap); freeHandle = new int [handleMax]; Register_Pointer(freeHandle); lastHandle = 0; firstFreeHandle = 0; lastFreeHandle = 0; storedTextures = 0; for(int i=0;i<MLRState::TextureMask+1;i++) { textureArray[i] = NULL; } unLoadedImages = false; }