mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-10 16:19:28 +01:00
Consolidate the three implementations of Decode5A3 found in Core into one. Fix some warnings.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2364 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
8276ca3b21
commit
aff0f1fbe3
@ -554,6 +554,14 @@
|
||||
RelativePath=".\Src\ChunkFile.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\ColorUtil.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\ColorUtil.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\Common.h"
|
||||
>
|
||||
|
56
Source/Core/Common/Src/ColorUtil.cpp
Normal file
56
Source/Core/Common/Src/ColorUtil.cpp
Normal file
@ -0,0 +1,56 @@
|
||||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, version 2.0.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#include "Common.h"
|
||||
#include "ColorUtil.h"
|
||||
|
||||
namespace ColorUtil
|
||||
{
|
||||
|
||||
const int lut5to8[] = { 0x00,0x08,0x10,0x18,0x20,0x29,0x31,0x39,
|
||||
0x41,0x4A,0x52,0x5A,0x62,0x6A,0x73,0x7B,
|
||||
0x83,0x8B,0x94,0x9C,0xA4,0xAC,0xB4,0xBD,
|
||||
0xC5,0xCD,0xD5,0xDE,0xE6,0xEE,0xF6,0xFF };
|
||||
const int lut4to8[] = { 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
|
||||
0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF };
|
||||
const int lut3to8[] = { 0x00,0x24,0x48,0x6D,0x91,0xB6,0xDA,0xFF };
|
||||
|
||||
u32 Decode5A3(u16 val)
|
||||
{
|
||||
const u32 bg_color = 0x00000000;
|
||||
|
||||
int r, g, b, a;
|
||||
|
||||
if (val & 0x8000)
|
||||
{
|
||||
r = lut5to8[(val >> 10) & 0x1f];
|
||||
g = lut5to8[(val >> 5) & 0x1f];
|
||||
b = lut5to8[(val) & 0x1f];
|
||||
a = 0xFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
a = lut3to8[(val >> 12) & 0x7];
|
||||
r = (lut4to8[(val >> 8) & 0xf] * a + (bg_color & 0xFF) * (255 - a)) / 255;
|
||||
g = (lut4to8[(val >> 4) & 0xf] * a + ((bg_color >> 8) & 0xFF) * (255 - a)) / 255;
|
||||
b = (lut4to8[(val) & 0xf] * a + ((bg_color >> 16) & 0xFF) * (255 - a)) / 255;
|
||||
a = 0xFF;
|
||||
}
|
||||
return (a << 24) | (r << 16) | (g << 8) | b;
|
||||
}
|
||||
|
||||
} // namespace
|
28
Source/Core/Common/Src/ColorUtil.h
Normal file
28
Source/Core/Common/Src/ColorUtil.h
Normal file
@ -0,0 +1,28 @@
|
||||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, version 2.0.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#ifndef _COLORUTIL_H
|
||||
#define _COLORUTIL_H
|
||||
|
||||
namespace ColorUtil
|
||||
{
|
||||
|
||||
u32 Decode5A3(u16 val);
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif
|
@ -76,7 +76,7 @@ u32 Ascii2Hex(std::string _Text)
|
||||
u32 Result = 0;
|
||||
|
||||
// Max 32-bit values are supported
|
||||
int Length = _Text.length();
|
||||
size_t Length = _Text.length();
|
||||
if (Length > 4)
|
||||
Length = 4;
|
||||
|
||||
|
@ -36,17 +36,15 @@ u32 timeGetTime()
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
namespace Common
|
||||
{
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Initiate, Start, Stop, and Update the time
|
||||
// ---------------
|
||||
|
||||
// Set initial values for the class
|
||||
Timer::Timer(void)
|
||||
Timer::Timer()
|
||||
: m_LastTime(0), m_StartTime(0), m_Running(false)
|
||||
{
|
||||
Update();
|
||||
@ -72,7 +70,7 @@ void Timer::Stop()
|
||||
}
|
||||
|
||||
// Update the last time variable
|
||||
void Timer::Update(void)
|
||||
void Timer::Update()
|
||||
{
|
||||
m_LastTime = timeGetTime();
|
||||
//TODO(ector) - QPF
|
||||
@ -86,7 +84,7 @@ void Timer::Update(void)
|
||||
// ---------------
|
||||
|
||||
// Get the number of milliseconds since the last Update()
|
||||
s64 Timer::GetTimeDifference(void)
|
||||
s64 Timer::GetTimeDifference()
|
||||
{
|
||||
return(timeGetTime() - m_LastTime);
|
||||
}
|
||||
@ -104,7 +102,7 @@ void Timer::WindBackStartingTime(u64 WindBack)
|
||||
}
|
||||
|
||||
// Get the time elapsed since the Start()
|
||||
u64 Timer::GetTimeElapsed(void)
|
||||
u64 Timer::GetTimeElapsed()
|
||||
{
|
||||
/* If we have not started yet return 1 (because then I don't have to change the FPS
|
||||
calculation in CoreRerecording.cpp */
|
||||
@ -117,20 +115,20 @@ u64 Timer::GetTimeElapsed(void)
|
||||
}
|
||||
|
||||
// Get the formattet time elapsed since the Start()
|
||||
std::string Timer::GetTimeElapsedFormatted(void)
|
||||
std::string Timer::GetTimeElapsedFormatted() const
|
||||
{
|
||||
// If we have not started yet, return zero
|
||||
if (m_StartTime == 0)
|
||||
return "00:00:00:000";
|
||||
|
||||
// The number of milliseconds since the start, use a different value if the timer is stopped
|
||||
u32 Milliseconds;
|
||||
u64 Milliseconds;
|
||||
if (m_Running)
|
||||
Milliseconds = timeGetTime() - m_StartTime;
|
||||
else
|
||||
Milliseconds = m_LastTime - m_StartTime;
|
||||
// Seconds
|
||||
u32 Seconds = Milliseconds / 1000;
|
||||
u32 Seconds = (u32)(Milliseconds / 1000);
|
||||
// Minutes
|
||||
u32 Minutes = Seconds / 60;
|
||||
// Hours
|
||||
@ -172,14 +170,14 @@ void _time64(u64* t)
|
||||
|
||||
|
||||
// Get the number of seconds since January 1 1970
|
||||
u64 Timer::GetTimeSinceJan1970(void)
|
||||
u64 Timer::GetTimeSinceJan1970()
|
||||
{
|
||||
time_t ltime;
|
||||
time(<ime);
|
||||
return((u64)ltime);
|
||||
}
|
||||
|
||||
u64 Timer::GetLocalTimeSinceJan1970(void)
|
||||
u64 Timer::GetLocalTimeSinceJan1970()
|
||||
{
|
||||
time_t sysTime, tzDiff;
|
||||
struct tm * gmTime;
|
||||
@ -193,7 +191,7 @@ u64 Timer::GetLocalTimeSinceJan1970(void)
|
||||
}
|
||||
|
||||
// Return the current time formatted as Minutes:Seconds:Milliseconds in the form 00:00:000
|
||||
std::string Timer::GetTimeFormatted(void)
|
||||
std::string Timer::GetTimeFormatted()
|
||||
{
|
||||
struct timeb tp;
|
||||
(void)::ftime(&tp);
|
||||
|
@ -25,8 +25,7 @@ namespace Common
|
||||
{
|
||||
class Timer
|
||||
{
|
||||
public:
|
||||
|
||||
public:
|
||||
Timer();
|
||||
|
||||
void Start();
|
||||
@ -34,7 +33,7 @@ class Timer
|
||||
void Update();
|
||||
|
||||
// The time difference is always returned in milliseconds, regardless of alternative internal representation
|
||||
s64 GetTimeDifference(void);
|
||||
s64 GetTimeDifference();
|
||||
void AddTimeDifference();
|
||||
void WindBackStartingTime(u64 WindBack);
|
||||
|
||||
@ -44,19 +43,20 @@ class Timer
|
||||
static u64 GetLocalTimeSinceJan1970();
|
||||
|
||||
static std::string GetTimeFormatted();
|
||||
std::string GetTimeElapsedFormatted();
|
||||
std::string GetTimeElapsedFormatted() const;
|
||||
u64 GetTimeElapsed();
|
||||
|
||||
public:
|
||||
|
||||
public:
|
||||
u64 m_LastTime;
|
||||
u64 m_StartTime;
|
||||
u64 m_frequency;
|
||||
bool m_Running;
|
||||
};
|
||||
|
||||
} // end of namespace Common
|
||||
|
||||
#ifdef __GNUC__
|
||||
u32 timeGetTime();
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -37,7 +37,7 @@ CDolLoader::CDolLoader(const char* _szFilename)
|
||||
fread(tmpBuffer, size, 1, pStream);
|
||||
fclose(pStream);
|
||||
|
||||
m_bInit = Initialize(tmpBuffer, size);
|
||||
m_bInit = Initialize(tmpBuffer, (u32)size);
|
||||
delete [] tmpBuffer;
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
// HyperIris: need clean code
|
||||
#include "../../Core/Src/ConfigManager.h"
|
||||
|
||||
#include "ColorUtil.h"
|
||||
#include "BannerLoaderGC.h"
|
||||
|
||||
namespace DiscIO
|
||||
@ -28,22 +29,6 @@ CBannerLoaderGC::CBannerLoaderGC(DiscIO::IFileSystem& _rFileSystem)
|
||||
: m_pBannerFile(NULL),
|
||||
m_IsValid(false)
|
||||
{
|
||||
// build LUT Table
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
lut3to8[i] = (i * 255) / 7;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 16; i++)
|
||||
{
|
||||
lut4to8[i] = (i * 255) / 15;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 32; i++)
|
||||
{
|
||||
lut5to8[i] = (i * 255) / 31;
|
||||
}
|
||||
|
||||
// load the opening.bnr
|
||||
size_t FileSize = (size_t) _rFileSystem.GetFileSize("opening.bnr");
|
||||
|
||||
@ -216,33 +201,6 @@ CBannerLoaderGC::GetDescription(std::string* _rDescription)
|
||||
}
|
||||
|
||||
|
||||
u32
|
||||
CBannerLoaderGC::decode5A3(u16 val)
|
||||
{
|
||||
u32 bannerBGColor = 0x00000000;
|
||||
|
||||
int r, g, b, a;
|
||||
|
||||
if ((val & 0x8000))
|
||||
{
|
||||
r = lut5to8[(val >> 10) & 0x1f];
|
||||
g = lut5to8[(val >> 5) & 0x1f];
|
||||
b = lut5to8[(val) & 0x1f];
|
||||
a = 0xFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
a = lut3to8[(val >> 12) & 0x7];
|
||||
r = (lut4to8[(val >> 8) & 0xf] * a + (bannerBGColor & 0xFF) * (255 - a)) / 255;
|
||||
g = (lut4to8[(val >> 4) & 0xf] * a + ((bannerBGColor >> 8) & 0xFF) * (255 - a)) / 255;
|
||||
b = (lut4to8[(val) & 0xf] * a + ((bannerBGColor >> 16) & 0xFF) * (255 - a)) / 255;
|
||||
a = 0xFF;
|
||||
}
|
||||
|
||||
return((a << 24) | (r << 16) | (g << 8) | b);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
CBannerLoaderGC::decode5A3image(u32* dst, u16* src, int width, int height)
|
||||
{
|
||||
@ -254,7 +212,7 @@ CBannerLoaderGC::decode5A3image(u32* dst, u16* src, int width, int height)
|
||||
{
|
||||
for (int ix = 0; ix < 4; ix++)
|
||||
{
|
||||
u32 RGBA = decode5A3(Common::swap16(src[ix]));
|
||||
u32 RGBA = ColorUtil::Decode5A3(Common::swap16(src[ix]));
|
||||
dst[(y + iy) * width + (x + ix)] = RGBA;
|
||||
}
|
||||
}
|
||||
|
@ -26,24 +26,17 @@ class CBannerLoaderGC
|
||||
: public IBannerLoader
|
||||
{
|
||||
public:
|
||||
|
||||
CBannerLoaderGC(DiscIO::IFileSystem& _rFileSystem);
|
||||
|
||||
virtual ~CBannerLoaderGC();
|
||||
|
||||
virtual bool IsValid();
|
||||
|
||||
virtual bool GetBanner(u32* _pBannerImage);
|
||||
|
||||
virtual bool GetName(std::string* _rName);
|
||||
|
||||
virtual bool GetCompany(std::string& _rCompany);
|
||||
|
||||
virtual bool GetDescription(std::string* _rDescription);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
enum
|
||||
{
|
||||
DVD_BANNER_WIDTH = 96,
|
||||
@ -85,20 +78,13 @@ class CBannerLoaderGC
|
||||
DVDBannerComment comment[6]; // Comments in six languages
|
||||
};
|
||||
|
||||
|
||||
// for banner decoding
|
||||
int lut3to8[8];
|
||||
int lut4to8[16];
|
||||
int lut5to8[32];
|
||||
|
||||
u8* m_pBannerFile;
|
||||
|
||||
bool m_IsValid;
|
||||
|
||||
u32 decode5A3(u16 val);
|
||||
void decode5A3image(u32* dst, u16* src, int width, int height);
|
||||
BANNER_TYPE getBannerType();
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "Common.h"
|
||||
#include "ColorUtil.h"
|
||||
#include "BannerLoaderWii.h"
|
||||
#include "FileUtil.h"
|
||||
|
||||
@ -29,8 +30,6 @@ CBannerLoaderWii::CBannerLoaderWii(DiscIO::IFileSystem& _rFileSystem)
|
||||
: m_pBannerFile(NULL)
|
||||
, m_IsValid(false)
|
||||
{
|
||||
InitLUTTable();
|
||||
|
||||
char Filename[260];
|
||||
char TitleID[4];
|
||||
|
||||
@ -143,54 +142,6 @@ CBannerLoaderWii::GetDescription(std::string* _rDescription)
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
CBannerLoaderWii::InitLUTTable()
|
||||
{
|
||||
// build LUT Table
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
lut3to8[i] = (i * 255) / 7;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 16; i++)
|
||||
{
|
||||
lut4to8[i] = (i * 255) / 15;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 32; i++)
|
||||
{
|
||||
lut5to8[i] = (i * 255) / 31;
|
||||
}
|
||||
}
|
||||
|
||||
u32
|
||||
CBannerLoaderWii::decode5A3(u16 val)
|
||||
{
|
||||
u32 bannerBGColor = 0x00000000;
|
||||
|
||||
int r, g, b, a;
|
||||
|
||||
if ((val & 0x8000))
|
||||
{
|
||||
r = lut5to8[(val >> 10) & 0x1f];
|
||||
g = lut5to8[(val >> 5) & 0x1f];
|
||||
b = lut5to8[(val) & 0x1f];
|
||||
a = 0xFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
a = lut3to8[(val >> 12) & 0x7];
|
||||
r = (lut4to8[(val >> 8) & 0xf] * a + (bannerBGColor & 0xFF) * (255 - a)) / 255;
|
||||
g = (lut4to8[(val >> 4) & 0xf] * a + ((bannerBGColor >> 8) & 0xFF) * (255 - a)) / 255;
|
||||
b = (lut4to8[(val) & 0xf] * a + ((bannerBGColor >> 16) & 0xFF) * (255 - a)) / 255;
|
||||
a = 0xFF;
|
||||
}
|
||||
|
||||
return ((a << 24) | (r << 16) | (g << 8) | b);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
CBannerLoaderWii::decode5A3image(u32* dst, u16* src, int width, int height)
|
||||
{
|
||||
@ -202,7 +153,7 @@ CBannerLoaderWii::decode5A3image(u32* dst, u16* src, int width, int height)
|
||||
{
|
||||
for (int ix = 0; ix < 4; ix++)
|
||||
{
|
||||
u32 RGBA = decode5A3(Common::swap16(src[ix]));
|
||||
u32 RGBA = ColorUtil::Decode5A3(Common::swap16(src[ix]));
|
||||
dst[(y + iy) * width + (x + ix)] = RGBA;
|
||||
}
|
||||
}
|
||||
|
@ -61,17 +61,10 @@ class CBannerLoaderWii
|
||||
u8 m_IconTexture[8][WII_BANNER_ICON_SIZE];
|
||||
} ;
|
||||
|
||||
// for banner decoding
|
||||
int lut3to8[8];
|
||||
int lut4to8[16];
|
||||
int lut5to8[32];
|
||||
|
||||
u8* m_pBannerFile;
|
||||
|
||||
bool m_IsValid;
|
||||
|
||||
void InitLUTTable();
|
||||
u32 decode5A3(u16 val);
|
||||
void decode5A3image(u32* dst, u16* src, int width, int height);
|
||||
};
|
||||
} // namespace
|
||||
|
@ -15,6 +15,7 @@
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
#include "GCMemcard.h"
|
||||
#include "ColorUtil.h"
|
||||
|
||||
// i think there is support for this stuff in the common lib... if not there should be support
|
||||
|
||||
@ -26,34 +27,6 @@ void ByteSwap(u8 *valueA, u8 *valueB)
|
||||
*valueB = tmp;
|
||||
}
|
||||
|
||||
u32 decode5A3(u16 val)
|
||||
{
|
||||
const int lut5to8[] = { 0x00,0x08,0x10,0x18,0x20,0x29,0x31,0x39,
|
||||
0x41,0x4A,0x52,0x5A,0x62,0x6A,0x73,0x7B,
|
||||
0x83,0x8B,0x94,0x9C,0xA4,0xAC,0xB4,0xBD,
|
||||
0xC5,0xCD,0xD5,0xDE,0xE6,0xEE,0xF6,0xFF};
|
||||
const int lut4to8[] = { 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
|
||||
0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF};
|
||||
const int lut3to8[] = { 0x00,0x24,0x48,0x6D,0x91,0xB6,0xDA,0xFF};
|
||||
|
||||
int r,g,b,a;
|
||||
if ((val&0x8000))
|
||||
{
|
||||
r=lut5to8[(val>>10) & 0x1f];
|
||||
g=lut5to8[(val>>5 ) & 0x1f];
|
||||
b=lut5to8[(val ) & 0x1f];
|
||||
a=0xFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
a=lut3to8[(val>>12) & 0x7];
|
||||
r=lut4to8[(val>>8 ) & 0xf];
|
||||
g=lut4to8[(val>>4 ) & 0xf];
|
||||
b=lut4to8[(val ) & 0xf];
|
||||
}
|
||||
return (a<<24) | (r<<16) | (g<<8) | b;
|
||||
}
|
||||
|
||||
void decode5A3image(u32* dst, u16* src, int width, int height)
|
||||
{
|
||||
for (int y = 0; y < height; y += 4)
|
||||
@ -64,7 +37,7 @@ void decode5A3image(u32* dst, u16* src, int width, int height)
|
||||
{
|
||||
for (int ix = 0; ix < 4; ix++)
|
||||
{
|
||||
u32 RGBA = decode5A3(Common::swap16(src[ix]));
|
||||
u32 RGBA = ColorUtil::Decode5A3(Common::swap16(src[ix]));
|
||||
dst[(y + iy) * width + (x + ix)] = RGBA;
|
||||
}
|
||||
}
|
||||
@ -83,7 +56,8 @@ void decodeCI8image(u32* dst, u8* src, u16* pal, int width, int height)
|
||||
u32 *tdst = dst+(y+iy)*width+x;
|
||||
for (int ix = 0; ix < 8; ix++)
|
||||
{
|
||||
tdst[ix] = decode5A3(Common::swap16(pal[src[ix]]));
|
||||
// huh, this seems wrong. CI8, not 5A3, no?
|
||||
tdst[ix] = ColorUtil::Decode5A3(Common::swap16(pal[src[ix]]));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -910,13 +884,13 @@ u32 GCMemcard::ExportGci(u8 index, const char *fileName, std::string *fileName2)
|
||||
{
|
||||
if (BE32(dir.Dir[index].Gamecode) == 0xFFFFFFFF) return SUCCESS;
|
||||
|
||||
int length = fileName2->length() + 42;
|
||||
size_t length = fileName2->length() + 42;
|
||||
char *filename = new char[length];
|
||||
char GameCode[5];
|
||||
|
||||
DEntry_GameCode(index, GameCode);
|
||||
|
||||
sprintf(filename,"%s/%s_%s.gci",fileName2->c_str(), GameCode, dir.Dir[index].Filename);
|
||||
sprintf(filename, "%s/%s_%s.gci", fileName2->c_str(), GameCode, dir.Dir[index].Filename);
|
||||
gci = fopen((const char *)filename, "wb");
|
||||
}
|
||||
else
|
||||
@ -955,7 +929,7 @@ u32 GCMemcard::ExportGci(u8 index, const char *fileName, std::string *fileName2)
|
||||
if (fwrite(tempSaveData, 1, size, gci) != size)
|
||||
completeWrite = false;
|
||||
fclose(gci);
|
||||
delete []tempSaveData;
|
||||
delete [] tempSaveData;
|
||||
if (completeWrite) return SUCCESS;
|
||||
else return WRITEFAIL;
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include <shlobj.h>
|
||||
#include <xstring>
|
||||
#include <string>
|
||||
|
||||
#include "ShellUtil.h"
|
||||
|
||||
namespace W32Util
|
||||
@ -30,19 +31,14 @@ namespace W32Util
|
||||
// function WinBrowseForFileName
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool BrowseForFileName (bool _bLoad, HWND _hParent, const char *_pTitle,
|
||||
const char *_pInitialFolder,const char *_pFilter,const char *_pExtension,
|
||||
const char *_pInitialFolder, const char *_pFilter, const char *_pExtension,
|
||||
std::string& _strFileName)
|
||||
{
|
||||
char szFile [MAX_PATH+1];
|
||||
char szFileTitle [MAX_PATH+1];
|
||||
|
||||
strcpy (szFile,"");
|
||||
strcpy (szFileTitle,"");
|
||||
char szFile [MAX_PATH+1] = {0};
|
||||
char szFileTitle [MAX_PATH+1] = {0};
|
||||
|
||||
OPENFILENAME ofn;
|
||||
|
||||
ZeroMemory (&ofn,sizeof (ofn));
|
||||
|
||||
ofn.lStructSize = sizeof (OPENFILENAME);
|
||||
ofn.lpstrInitialDir = _pInitialFolder;
|
||||
ofn.lpstrFilter = _pFilter;
|
||||
@ -57,12 +53,11 @@ namespace W32Util
|
||||
if (_strFileName.size () != 0)
|
||||
ofn.lpstrFile = (char *)_strFileName.c_str();
|
||||
|
||||
if (((_bLoad)?GetOpenFileName (&ofn):GetSaveFileName (&ofn)))
|
||||
if (((_bLoad) ? GetOpenFileName(&ofn) : GetSaveFileName(&ofn)))
|
||||
{
|
||||
_strFileName = ofn.lpstrFile;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -113,12 +108,6 @@ namespace W32Util
|
||||
}
|
||||
return files;
|
||||
}
|
||||
else
|
||||
return std::vector<std::string>(); // empty vector;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
} // namespace
|
||||
|
@ -807,8 +807,8 @@ void Renderer::Swap(const TRectangle& rc)
|
||||
// Rc.right and rc.bottom is the original picture pixel size
|
||||
/* There is a +1 in Rc (earlier called multirc, the input to this function), but these
|
||||
adjustments seems to work better without it. */
|
||||
float WidthRatio = (float)(rc.right - 1) / 640.0;
|
||||
float HeightRatio = (float)(rc.bottom - 1) / 480.0;
|
||||
float WidthRatio = (float)(rc.right - 1) / 640.0f;
|
||||
float HeightRatio = (float)(rc.bottom - 1) / 480.0f;
|
||||
|
||||
// The pixel size of the image on the screen, adjusted for the actual window size
|
||||
float OldWidth = WidthRatio * (float)WinWidth;
|
||||
@ -854,10 +854,8 @@ void Renderer::Swap(const TRectangle& rc)
|
||||
float WinWidth = (float)OpenGL_GetWidth();
|
||||
float WinHeight = (float)OpenGL_GetHeight();
|
||||
// The rendering window aspect ratio as a fraction of the 4:3 ratio
|
||||
float Ratio = WinWidth / WinHeight / (4.0 / 3.0);
|
||||
float Ratio = WinWidth / WinHeight / (4.0f / 3.0f);
|
||||
float wAdj, hAdj;
|
||||
float ActualRatioW, ActualRatioH;
|
||||
float Overflow;
|
||||
// Actual pixel size of the picture after adjustment
|
||||
float PictureWidth = WinWidth, PictureHeight = WinHeight;
|
||||
|
||||
@ -894,8 +892,8 @@ void Renderer::Swap(const TRectangle& rc)
|
||||
// Calculate the new width and height for glViewport, this is not the actual size of either the picture or the screen
|
||||
// ----------------
|
||||
// Invert the ratio to make it > 1
|
||||
Ratio = 1.0 / Ratio;
|
||||
wAdj = 1.0;
|
||||
Ratio = 1.0f / Ratio;
|
||||
wAdj = 1.0f;
|
||||
hAdj = Ratio;
|
||||
FloatGLWidth = FloatGLWidth / wAdj;
|
||||
FloatGLHeight = FloatGLHeight / hAdj;
|
||||
@ -909,9 +907,9 @@ void Renderer::Swap(const TRectangle& rc)
|
||||
// Keep the picture on the bottom of the screen, this is needed because YOffset may not be 0 here
|
||||
FloatYOffset = FloatYOffset / hAdj;
|
||||
// Move the bottom of the picture to the middle of the screen
|
||||
FloatYOffset = FloatYOffset + WinHeight / 2.0;
|
||||
FloatYOffset = FloatYOffset + WinHeight / 2.0f;
|
||||
// Then remove half the picture height to move it to the vertical center
|
||||
FloatYOffset = FloatYOffset - PictureHeight / 2.0;
|
||||
FloatYOffset = FloatYOffset - PictureHeight / 2.0f;
|
||||
// --------------------
|
||||
}
|
||||
|
||||
|
@ -79,6 +79,7 @@ extern int frameCount;
|
||||
|
||||
class Renderer
|
||||
{
|
||||
private:
|
||||
static void FlushZBufferAlphaToTarget();
|
||||
|
||||
public:
|
||||
|
@ -133,7 +133,6 @@ void LoadRecordedMovements()
|
||||
//Console::Print("Recording%i ", i + 1);
|
||||
|
||||
// Temporary storage
|
||||
bool bTmp;
|
||||
int iTmp;
|
||||
std::string STmp;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user