Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
124 lines
2.4 KiB
C++
124 lines
2.4 KiB
C++
#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;
|
|
}
|