#include "MLRHeaders.hpp" //############################################################################# //############################ GOSImage ############################### //############################################################################# //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GOSImage::GOSImage( const char* iName ) : Plug (DefaultData) { imageName = iName; flags = 0; instance = 0; imageHandle = 0; ptr.pTexture = NULL; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GOSImage::GOSImage( DWORD iHandle ) : Plug (DefaultData) { char str[20]; sprintf(str, "image%03d", iHandle); imageName = str; flags = Loaded; instance = 0; imageHandle = iHandle; ptr.pTexture = NULL; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GOSImage::GOSImage(gos_TextureFormat format, const char *name, int size, gos_TextureHints hints) : Plug (DefaultData) { imageName = name; flags = Loaded; instance = 0; imageHandle = gos_NewEmptyTexture( format, name, size, hints); ptr.pTexture = NULL; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GOSImage::~GOSImage() { if((flags & Locked) != 0) { // gos_UnLockTexture(imageHandle); } if((flags & Loaded) != 0) { gos_DestroyTexture(imageHandle); } flags = 0; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // int GOSImage::GetWidth() { return ptr.Width; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // int GOSImage::GetHeight() { return ptr.Height; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void GOSImage::LockImage() { if(!(flags & Locked)) { flags |= Locked; gos_LockTexture(imageHandle, 0, false, &ptr); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void GOSImage::UnlockImage() { if(flags & Locked) { flags &= ~Locked; MLR_RENDER("Unlock Texture"); Start_Timer(Unlock_Texture_Time); gos_UnLockTexture(imageHandle); Stop_Timer(Unlock_Texture_Time); ptr.pTexture = NULL; } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // BYTE* GOSImage::GetImagePtr() { return (BYTE *)ptr.pTexture; }