mirror of https://github.com/stella-emu/stella.git
Separated the UI palette from emulation palette, and reworked color
definitions so that it's clearer which palette should be used. Added 1x TIA emulation surface creation to FrameBuffer. Certain parts of the codebase need access to this (debugger, snapshot in 1x mode, etc). Related to this, viewing the TIA emulation in the debugger now works again. Still todo is fix color handling in PromptWidget (which I just broke). git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1594 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
b19344c77f
commit
e3b07007d4
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBufferGL.cxx,v 1.130 2009-01-01 18:13:35 stephena Exp $
|
// $Id: FrameBufferGL.cxx,v 1.131 2009-01-03 15:44:12 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifdef DISPLAY_OPENGL
|
#ifdef DISPLAY_OPENGL
|
||||||
|
@ -569,26 +569,26 @@ FBSurfaceGL::~FBSurfaceGL()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceGL::hLine(uInt32 x, uInt32 y, uInt32 x2, int color)
|
void FBSurfaceGL::hLine(uInt32 x, uInt32 y, uInt32 x2, UIColor color)
|
||||||
{
|
{
|
||||||
uInt16* buffer = (uInt16*) myTexture->pixels + y * myPitch + x;
|
uInt16* buffer = (uInt16*) myTexture->pixels + y * myPitch + x;
|
||||||
while(x++ <= x2)
|
while(x++ <= x2)
|
||||||
*buffer++ = (uInt16) myFB.myDefPalette[color];
|
*buffer++ = (uInt16) myFB.myUIPalette[color];
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceGL::vLine(uInt32 x, uInt32 y, uInt32 y2, int color)
|
void FBSurfaceGL::vLine(uInt32 x, uInt32 y, uInt32 y2, UIColor color)
|
||||||
{
|
{
|
||||||
uInt16* buffer = (uInt16*) myTexture->pixels + y * myPitch + x;
|
uInt16* buffer = (uInt16*) myTexture->pixels + y * myPitch + x;
|
||||||
while(y++ <= y2)
|
while(y++ <= y2)
|
||||||
{
|
{
|
||||||
*buffer = (uInt16) myFB.myDefPalette[color];
|
*buffer = (uInt16) myFB.myUIPalette[color];
|
||||||
buffer += myPitch;
|
buffer += myPitch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceGL::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color)
|
void FBSurfaceGL::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, UIColor color)
|
||||||
{
|
{
|
||||||
// Fill the rectangle
|
// Fill the rectangle
|
||||||
SDL_Rect tmp;
|
SDL_Rect tmp;
|
||||||
|
@ -596,12 +596,26 @@ void FBSurfaceGL::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color)
|
||||||
tmp.y = y;
|
tmp.y = y;
|
||||||
tmp.w = w;
|
tmp.w = w;
|
||||||
tmp.h = h;
|
tmp.h = h;
|
||||||
SDL_FillRect(myTexture, &tmp, myFB.myDefPalette[color]);
|
SDL_FillRect(myTexture, &tmp, myFB.myUIPalette[color]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void FBSurfaceGL::fillTIARect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
|
int c1, int c2)
|
||||||
|
{
|
||||||
|
// Fill the rectangle
|
||||||
|
SDL_Rect tmp;
|
||||||
|
tmp.x = x;
|
||||||
|
tmp.y = y;
|
||||||
|
tmp.w = w;
|
||||||
|
tmp.h = h;
|
||||||
|
SDL_FillRect(myTexture, &tmp,
|
||||||
|
(c2 == -1 ? myFB.myDefPalette[c1] : myFB.myAvgPalette[c1][c2]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceGL::drawChar(const GUI::Font* font, uInt8 chr,
|
void FBSurfaceGL::drawChar(const GUI::Font* font, uInt8 chr,
|
||||||
uInt32 tx, uInt32 ty, int color)
|
uInt32 tx, uInt32 ty, UIColor color)
|
||||||
{
|
{
|
||||||
const FontDesc& desc = font->desc();
|
const FontDesc& desc = font->desc();
|
||||||
|
|
||||||
|
@ -642,7 +656,7 @@ void FBSurfaceGL::drawChar(const GUI::Font* font, uInt8 chr,
|
||||||
|
|
||||||
for(int x = 0; x < bbw; x++, mask >>= 1)
|
for(int x = 0; x < bbw; x++, mask >>= 1)
|
||||||
if(ptr & mask)
|
if(ptr & mask)
|
||||||
buffer[x] = (uInt16) myFB.myDefPalette[color];
|
buffer[x] = (uInt16) myFB.myUIPalette[color];
|
||||||
|
|
||||||
buffer += myPitch;
|
buffer += myPitch;
|
||||||
}
|
}
|
||||||
|
@ -650,7 +664,7 @@ void FBSurfaceGL::drawChar(const GUI::Font* font, uInt8 chr,
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceGL::drawBitmap(uInt32* bitmap, uInt32 tx, uInt32 ty,
|
void FBSurfaceGL::drawBitmap(uInt32* bitmap, uInt32 tx, uInt32 ty,
|
||||||
int color, uInt32 h)
|
UIColor color, uInt32 h)
|
||||||
{
|
{
|
||||||
uInt16* buffer = (uInt16*) myTexture->pixels + ty * myPitch + tx;
|
uInt16* buffer = (uInt16*) myTexture->pixels + ty * myPitch + tx;
|
||||||
|
|
||||||
|
@ -659,7 +673,7 @@ void FBSurfaceGL::drawBitmap(uInt32* bitmap, uInt32 tx, uInt32 ty,
|
||||||
uInt32 mask = 0xF0000000;
|
uInt32 mask = 0xF0000000;
|
||||||
for(uInt32 x = 0; x < 8; ++x, mask >>= 4)
|
for(uInt32 x = 0; x < 8; ++x, mask >>= 4)
|
||||||
if(bitmap[y] & mask)
|
if(bitmap[y] & mask)
|
||||||
buffer[x] = (uInt16) myFB.myDefPalette[color];
|
buffer[x] = (uInt16) myFB.myUIPalette[color];
|
||||||
|
|
||||||
buffer += myPitch;
|
buffer += myPitch;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBufferGL.hxx,v 1.68 2009-01-01 18:13:35 stephena Exp $
|
// $Id: FrameBufferGL.hxx,v 1.69 2009-01-03 15:44:12 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef FRAMEBUFFER_GL_HXX
|
#ifndef FRAMEBUFFER_GL_HXX
|
||||||
|
@ -35,7 +35,7 @@ class FBSurfaceGL;
|
||||||
This class implements an SDL OpenGL framebuffer.
|
This class implements an SDL OpenGL framebuffer.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBufferGL.hxx,v 1.68 2009-01-01 18:13:35 stephena Exp $
|
@version $Id: FrameBufferGL.hxx,v 1.69 2009-01-03 15:44:12 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FrameBufferGL : public FrameBuffer
|
class FrameBufferGL : public FrameBuffer
|
||||||
{
|
{
|
||||||
|
@ -176,7 +176,7 @@ class FrameBufferGL : public FrameBuffer
|
||||||
A surface suitable for OpenGL rendering mode.
|
A surface suitable for OpenGL rendering mode.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBufferGL.hxx,v 1.68 2009-01-01 18:13:35 stephena Exp $
|
@version $Id: FrameBufferGL.hxx,v 1.69 2009-01-03 15:44:12 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FBSurfaceGL : public FBSurface
|
class FBSurfaceGL : public FBSurface
|
||||||
{
|
{
|
||||||
|
@ -188,11 +188,12 @@ class FBSurfaceGL : public FBSurface
|
||||||
uInt32 scaleWidth, uInt32 scaleHeight);
|
uInt32 scaleWidth, uInt32 scaleHeight);
|
||||||
virtual ~FBSurfaceGL();
|
virtual ~FBSurfaceGL();
|
||||||
|
|
||||||
void hLine(uInt32 x, uInt32 y, uInt32 x2, int color);
|
void hLine(uInt32 x, uInt32 y, uInt32 x2, UIColor color);
|
||||||
void vLine(uInt32 x, uInt32 y, uInt32 y2, int color);
|
void vLine(uInt32 x, uInt32 y, uInt32 y2, UIColor color);
|
||||||
void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color);
|
void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, UIColor color);
|
||||||
void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, int color);
|
void fillTIARect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int c1, int c2);
|
||||||
void drawBitmap(uInt32* bitmap, uInt32 x, uInt32 y, int color, uInt32 h = 8);
|
void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, UIColor color);
|
||||||
|
void drawBitmap(uInt32* bitmap, uInt32 x, uInt32 y, UIColor color, uInt32 h = 8);
|
||||||
void drawBytes(uInt8* data, uInt32 x, uInt32 y, uInt32 rowbytes);
|
void drawBytes(uInt8* data, uInt32 x, uInt32 y, uInt32 rowbytes);
|
||||||
void drawSurface(const FBSurface* surface, uInt32 x, uInt32 y);
|
void drawSurface(const FBSurface* surface, uInt32 x, uInt32 y);
|
||||||
void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h);
|
void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBufferSoft.cxx,v 1.89 2009-01-01 18:13:35 stephena Exp $
|
// $Id: FrameBufferSoft.cxx,v 1.90 2009-01-03 15:44:12 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -222,7 +222,7 @@ void FrameBufferSoft::drawMediaSource(bool fullRedraw)
|
||||||
}
|
}
|
||||||
myTiaDirty = true;
|
myTiaDirty = true;
|
||||||
}
|
}
|
||||||
else // try to eliminate multply whereever possible
|
else // try to eliminate multiply whereever possible
|
||||||
pos += xstride + xstride + xstride + xstride + xstride + xstride;
|
pos += xstride + xstride + xstride + xstride + xstride + xstride;
|
||||||
}
|
}
|
||||||
screenofsY += myPitch;
|
screenofsY += myPitch;
|
||||||
|
@ -533,7 +533,7 @@ FBSurfaceSoft::~FBSurfaceSoft()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceSoft::hLine(uInt32 x, uInt32 y, uInt32 x2, int color)
|
void FBSurfaceSoft::hLine(uInt32 x, uInt32 y, uInt32 x2, UIColor color)
|
||||||
{
|
{
|
||||||
// Horizontal line
|
// Horizontal line
|
||||||
SDL_Rect tmp;
|
SDL_Rect tmp;
|
||||||
|
@ -541,11 +541,11 @@ void FBSurfaceSoft::hLine(uInt32 x, uInt32 y, uInt32 x2, int color)
|
||||||
tmp.y = y + myYOffset;
|
tmp.y = y + myYOffset;
|
||||||
tmp.w = x2 - x + 1;
|
tmp.w = x2 - x + 1;
|
||||||
tmp.h = 1;
|
tmp.h = 1;
|
||||||
SDL_FillRect(mySurface, &tmp, myFB.myDefPalette[color]);
|
SDL_FillRect(mySurface, &tmp, myFB.myUIPalette[color]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceSoft::vLine(uInt32 x, uInt32 y, uInt32 y2, int color)
|
void FBSurfaceSoft::vLine(uInt32 x, uInt32 y, uInt32 y2, UIColor color)
|
||||||
{
|
{
|
||||||
// Vertical line
|
// Vertical line
|
||||||
SDL_Rect tmp;
|
SDL_Rect tmp;
|
||||||
|
@ -553,11 +553,11 @@ void FBSurfaceSoft::vLine(uInt32 x, uInt32 y, uInt32 y2, int color)
|
||||||
tmp.y = y + myYOffset;
|
tmp.y = y + myYOffset;
|
||||||
tmp.w = 1;
|
tmp.w = 1;
|
||||||
tmp.h = y2 - y + 1;
|
tmp.h = y2 - y + 1;
|
||||||
SDL_FillRect(mySurface, &tmp, myFB.myDefPalette[color]);
|
SDL_FillRect(mySurface, &tmp, myFB.myUIPalette[color]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceSoft::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color)
|
void FBSurfaceSoft::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, UIColor color)
|
||||||
{
|
{
|
||||||
// Fill the rectangle
|
// Fill the rectangle
|
||||||
SDL_Rect tmp;
|
SDL_Rect tmp;
|
||||||
|
@ -565,12 +565,26 @@ void FBSurfaceSoft::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color)
|
||||||
tmp.y = y + myYOffset;
|
tmp.y = y + myYOffset;
|
||||||
tmp.w = w;
|
tmp.w = w;
|
||||||
tmp.h = h;
|
tmp.h = h;
|
||||||
SDL_FillRect(mySurface, &tmp, myFB.myDefPalette[color]);
|
SDL_FillRect(mySurface, &tmp, myFB.myUIPalette[color]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void FBSurfaceSoft::fillTIARect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
|
int c1, int c2)
|
||||||
|
{
|
||||||
|
// Fill the rectangle
|
||||||
|
SDL_Rect tmp;
|
||||||
|
tmp.x = x + myXOffset;
|
||||||
|
tmp.y = y + myYOffset;
|
||||||
|
tmp.w = w;
|
||||||
|
tmp.h = h;
|
||||||
|
SDL_FillRect(mySurface, &tmp,
|
||||||
|
(c2 == -1 ? myFB.myDefPalette[c1] : myFB.myAvgPalette[c1][c2]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceSoft::drawChar(const GUI::Font* font, uInt8 chr,
|
void FBSurfaceSoft::drawChar(const GUI::Font* font, uInt8 chr,
|
||||||
uInt32 tx, uInt32 ty, int color)
|
uInt32 tx, uInt32 ty, UIColor color)
|
||||||
{
|
{
|
||||||
// TODO - test this in 16-bit, and re-write 24-bit
|
// TODO - test this in 16-bit, and re-write 24-bit
|
||||||
const FontDesc& desc = font->desc();
|
const FontDesc& desc = font->desc();
|
||||||
|
@ -617,7 +631,7 @@ void FBSurfaceSoft::drawChar(const GUI::Font* font, uInt8 chr,
|
||||||
|
|
||||||
for(int x = 0; x < bbw; x++, mask >>= 1)
|
for(int x = 0; x < bbw; x++, mask >>= 1)
|
||||||
if(ptr & mask)
|
if(ptr & mask)
|
||||||
buffer[x] = (uInt16) myFB.myDefPalette[color];
|
buffer[x] = (uInt16) myFB.myUIPalette[color];
|
||||||
|
|
||||||
buffer += myPitch;
|
buffer += myPitch;
|
||||||
}
|
}
|
||||||
|
@ -677,7 +691,7 @@ void FBSurfaceSoft::drawChar(const GUI::Font* font, uInt8 chr,
|
||||||
|
|
||||||
for(int x = 0; x < bbw; x++, mask >>= 1)
|
for(int x = 0; x < bbw; x++, mask >>= 1)
|
||||||
if(ptr & mask)
|
if(ptr & mask)
|
||||||
buffer[x] = (uInt32) myFB.myDefPalette[color];
|
buffer[x] = (uInt32) myFB.myUIPalette[color];
|
||||||
|
|
||||||
buffer += myPitch;
|
buffer += myPitch;
|
||||||
}
|
}
|
||||||
|
@ -690,7 +704,7 @@ void FBSurfaceSoft::drawChar(const GUI::Font* font, uInt8 chr,
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceSoft::drawBitmap(uInt32* bitmap, uInt32 tx, uInt32 ty,
|
void FBSurfaceSoft::drawBitmap(uInt32* bitmap, uInt32 tx, uInt32 ty,
|
||||||
int color, uInt32 h)
|
UIColor color, uInt32 h)
|
||||||
{
|
{
|
||||||
SDL_Rect rect;
|
SDL_Rect rect;
|
||||||
rect.y = ty + myYOffset;
|
rect.y = ty + myYOffset;
|
||||||
|
@ -702,7 +716,7 @@ void FBSurfaceSoft::drawBitmap(uInt32* bitmap, uInt32 tx, uInt32 ty,
|
||||||
for(uInt32 x = 0; x < 8; x++, mask >>= 4)
|
for(uInt32 x = 0; x < 8; x++, mask >>= 4)
|
||||||
{
|
{
|
||||||
if(bitmap[y] & mask)
|
if(bitmap[y] & mask)
|
||||||
SDL_FillRect(mySurface, &rect, myFB.myDefPalette[color]);
|
SDL_FillRect(mySurface, &rect, myFB.myUIPalette[color]);
|
||||||
|
|
||||||
rect.x++;
|
rect.x++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBufferSoft.hxx,v 1.61 2009-01-01 18:13:35 stephena Exp $
|
// $Id: FrameBufferSoft.hxx,v 1.62 2009-01-03 15:44:13 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef FRAMEBUFFER_SOFT_HXX
|
#ifndef FRAMEBUFFER_SOFT_HXX
|
||||||
|
@ -32,7 +32,7 @@ class RectList;
|
||||||
This class implements an SDL software framebuffer.
|
This class implements an SDL software framebuffer.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBufferSoft.hxx,v 1.61 2009-01-01 18:13:35 stephena Exp $
|
@version $Id: FrameBufferSoft.hxx,v 1.62 2009-01-03 15:44:13 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FrameBufferSoft : public FrameBuffer
|
class FrameBufferSoft : public FrameBuffer
|
||||||
{
|
{
|
||||||
|
@ -166,7 +166,7 @@ class FrameBufferSoft : public FrameBuffer
|
||||||
A surface suitable for software rendering mode.
|
A surface suitable for software rendering mode.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBufferSoft.hxx,v 1.61 2009-01-01 18:13:35 stephena Exp $
|
@version $Id: FrameBufferSoft.hxx,v 1.62 2009-01-03 15:44:13 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FBSurfaceSoft : public FBSurface
|
class FBSurfaceSoft : public FBSurface
|
||||||
{
|
{
|
||||||
|
@ -175,11 +175,12 @@ class FBSurfaceSoft : public FBSurface
|
||||||
uInt32 w, uInt32 h, bool isBase);
|
uInt32 w, uInt32 h, bool isBase);
|
||||||
virtual ~FBSurfaceSoft();
|
virtual ~FBSurfaceSoft();
|
||||||
|
|
||||||
void hLine(uInt32 x, uInt32 y, uInt32 x2, int color);
|
void hLine(uInt32 x, uInt32 y, uInt32 x2, UIColor color);
|
||||||
void vLine(uInt32 x, uInt32 y, uInt32 y2, int color);
|
void vLine(uInt32 x, uInt32 y, uInt32 y2, UIColor color);
|
||||||
void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color);
|
void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, UIColor color);
|
||||||
void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, int color);
|
void fillTIARect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int c1, int c2);
|
||||||
void drawBitmap(uInt32* bitmap, uInt32 x, uInt32 y, int color, uInt32 h = 8);
|
void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, UIColor color);
|
||||||
|
void drawBitmap(uInt32* bitmap, uInt32 x, uInt32 y, UIColor color, uInt32 h = 8);
|
||||||
void drawBytes(uInt8* data, uInt32 x, uInt32 y, uInt32 rowbytes);
|
void drawBytes(uInt8* data, uInt32 x, uInt32 y, uInt32 rowbytes);
|
||||||
void drawSurface(const FBSurface* surface, uInt32 x, uInt32 y);
|
void drawSurface(const FBSurface* surface, uInt32 x, uInt32 y);
|
||||||
void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h);
|
void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: ColorWidget.cxx,v 1.10 2009-01-01 18:13:35 stephena Exp $
|
// $Id: ColorWidget.cxx,v 1.11 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -73,5 +73,5 @@ void ColorWidget::drawWidget(bool hilite)
|
||||||
s.vLine(_x + _w - 1, _y, _y +_h - 1, kShadowColor);
|
s.vLine(_x + _w - 1, _y, _y +_h - 1, kShadowColor);
|
||||||
|
|
||||||
// Show the currently selected color
|
// Show the currently selected color
|
||||||
s.fillRect(_x+1, _y+1, _w-2, _h-1, _color);
|
s.fillTIARect(_x+1, _y+1, _w-2, _h-1, _color);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: DataGridWidget.cxx,v 1.15 2009-01-01 18:13:35 stephena Exp $
|
// $Id: DataGridWidget.cxx,v 1.16 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -521,7 +521,7 @@ void DataGridWidget::drawWidget(bool hilite)
|
||||||
buffer = _valueStringList[pos];
|
buffer = _valueStringList[pos];
|
||||||
deltax = 0;
|
deltax = 0;
|
||||||
|
|
||||||
int color = kTextColor;
|
UIColor color = kTextColor;
|
||||||
if(_changedList[pos])
|
if(_changedList[pos])
|
||||||
{
|
{
|
||||||
s.fillRect(x - 3, y - 1, _colWidth-1, _rowHeight-1, kDbgChangedColor);
|
s.fillRect(x - 3, y - 1, _colWidth-1, _rowHeight-1, kDbgChangedColor);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: PromptWidget.cxx,v 1.26 2009-01-01 18:13:35 stephena Exp $
|
// $Id: PromptWidget.cxx,v 1.27 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -101,7 +101,7 @@ PromptWidget::~PromptWidget()
|
||||||
void PromptWidget::drawWidget(bool hilite)
|
void PromptWidget::drawWidget(bool hilite)
|
||||||
{
|
{
|
||||||
//cerr << "PromptWidget::drawWidget\n";
|
//cerr << "PromptWidget::drawWidget\n";
|
||||||
int fgcolor, bgcolor;
|
UIColor fgcolor, bgcolor;
|
||||||
|
|
||||||
FBSurface& s = _boss->dialog().surface();
|
FBSurface& s = _boss->dialog().surface();
|
||||||
|
|
||||||
|
@ -117,10 +117,10 @@ void PromptWidget::drawWidget(bool hilite)
|
||||||
|
|
||||||
if(c & (1 << 17)) { // inverse video flag
|
if(c & (1 << 17)) { // inverse video flag
|
||||||
fgcolor = _bgcolor;
|
fgcolor = _bgcolor;
|
||||||
bgcolor = (c & 0x1ffff) >> 8;
|
//FIXME bgcolor = (c & 0x1ffff) >> 8;
|
||||||
s.fillRect(x, y, _kConsoleCharWidth, _kConsoleCharHeight, bgcolor);
|
s.fillRect(x, y, _kConsoleCharWidth, _kConsoleCharHeight, bgcolor);
|
||||||
} else {
|
} else {
|
||||||
fgcolor = c >> 8;
|
//FIXME fgcolor = c >> 8;
|
||||||
}
|
}
|
||||||
s.drawChar(&instance().consoleFont(), c & 0x7f, x, y, fgcolor);
|
s.drawChar(&instance().consoleFont(), c & 0x7f, x, y, fgcolor);
|
||||||
x += _kConsoleCharWidth;
|
x += _kConsoleCharWidth;
|
||||||
|
@ -804,10 +804,10 @@ void PromptWidget::putcharIntern(int c)
|
||||||
// don't print or advance cursor
|
// don't print or advance cursor
|
||||||
// there are only 128 TIA colors, but
|
// there are only 128 TIA colors, but
|
||||||
// OverlayColor contains 256 of them
|
// OverlayColor contains 256 of them
|
||||||
_textcolor = (c & 0x7f) << 1;
|
//FIXME _textcolor = 0;//FIXME(c & 0x7f) << 1;
|
||||||
}
|
}
|
||||||
else if(c < ' ') { // More colors (the regular GUI ones)
|
else if(c < ' ') { // More colors (the regular GUI ones)
|
||||||
_textcolor = c + 0x100;
|
//FIXME _textcolor = c + 0x100;
|
||||||
}
|
}
|
||||||
else if(c == 0x7f) { // toggle inverse video (DEL char)
|
else if(c == 0x7f) { // toggle inverse video (DEL char)
|
||||||
_inverse = !_inverse;
|
_inverse = !_inverse;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TiaOutputWidget.cxx,v 1.22 2009-01-01 18:13:35 stephena Exp $
|
// $Id: TiaOutputWidget.cxx,v 1.23 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -139,9 +139,7 @@ void TiaOutputWidget::handleCommand(CommandSender* sender, int cmd, int data, in
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void TiaOutputWidget::drawWidget(bool hilite)
|
void TiaOutputWidget::drawWidget(bool hilite)
|
||||||
{
|
{
|
||||||
/*
|
// FIXME - maybe 'greyed out mode' should be done here, not in the TIA class
|
||||||
// FIXME - check if we're in 'greyed out mode' and act accordingly
|
const FBSurface* tia = instance().frameBuffer().smallTIASurface();
|
||||||
instance().frameBuffer().refresh();
|
dialog().surface().drawSurface(tia, 0, 0);
|
||||||
instance().frameBuffer().drawMediaSource();
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TiaZoomWidget.cxx,v 1.20 2009-01-01 18:13:35 stephena Exp $
|
// $Id: TiaZoomWidget.cxx,v 1.21 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -230,7 +230,7 @@ void TiaZoomWidget::drawWidget(bool hilite)
|
||||||
{
|
{
|
||||||
for(x = myXoff, col = 0; x < myNumCols+myXoff; ++x, col += width)
|
for(x = myXoff, col = 0; x < myNumCols+myXoff; ++x, col += width)
|
||||||
{
|
{
|
||||||
s.fillRect(_x + col + 2, _y + row + 2, width, height,
|
s.fillTIARect(_x + col + 2, _y + row + 2, width, height,
|
||||||
currentFrame[y*pitch + x]);
|
currentFrame[y*pitch + x]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TogglePixelWidget.cxx,v 1.9 2009-01-01 18:13:35 stephena Exp $
|
// $Id: TogglePixelWidget.cxx,v 1.10 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
TogglePixelWidget::TogglePixelWidget(GuiObject* boss, const GUI::Font& font,
|
TogglePixelWidget::TogglePixelWidget(GuiObject* boss, const GUI::Font& font,
|
||||||
int x, int y, int cols, int rows)
|
int x, int y, int cols, int rows)
|
||||||
: ToggleWidget(boss, font, x, y, cols, rows),
|
: ToggleWidget(boss, font, x, y, cols, rows),
|
||||||
_pixelColor(kBGColor)
|
_pixelColor(0)
|
||||||
{
|
{
|
||||||
_type = kTogglePixelWidget;
|
_type = kTogglePixelWidget;
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ void TogglePixelWidget::drawWidget(bool hilite)
|
||||||
|
|
||||||
// Either draw the pixel in given color, or erase (show background)
|
// Either draw the pixel in given color, or erase (show background)
|
||||||
if(_stateList[pos])
|
if(_stateList[pos])
|
||||||
s.fillRect(x - 3, y - 1, _colWidth-1, _rowHeight-1, _pixelColor);
|
s.fillTIARect(x - 3, y - 1, _colWidth-1, _rowHeight-1, _pixelColor);
|
||||||
else
|
else
|
||||||
s.fillRect(x - 3, y - 1, _colWidth-1, _rowHeight-1, kBGColor);
|
s.fillRect(x - 3, y - 1, _colWidth-1, _rowHeight-1, kBGColor);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBuffer.cxx,v 1.152 2009-01-01 18:13:35 stephena Exp $
|
// $Id: FrameBuffer.cxx,v 1.153 2009-01-03 15:44:13 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
@ -47,7 +47,8 @@ FrameBuffer::FrameBuffer(OSystem* osystem)
|
||||||
myPhosphorBlend(77),
|
myPhosphorBlend(77),
|
||||||
myInitializedCount(0),
|
myInitializedCount(0),
|
||||||
myPausedCount(0),
|
myPausedCount(0),
|
||||||
mySurfaceCount(0)
|
mySurfaceCount(0),
|
||||||
|
mySmallTiaSurface(NULL)
|
||||||
{
|
{
|
||||||
myMsg.surface = myStatsMsg.surface = NULL;
|
myMsg.surface = myStatsMsg.surface = NULL;
|
||||||
myMsg.surfaceID = myStatsMsg.surfaceID = -1;
|
myMsg.surfaceID = myStatsMsg.surfaceID = -1;
|
||||||
|
@ -139,6 +140,10 @@ bool FrameBuffer::initialize(const string& title, uInt32 width, uInt32 height)
|
||||||
myMsg.surface = surface(myMsg.surfaceID);
|
myMsg.surface = surface(myMsg.surfaceID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create surface for 1x TIA mode
|
||||||
|
if(mySmallTiaSurface == NULL)
|
||||||
|
mySmallTiaSurface = surface(allocateSurface(320, 260));
|
||||||
|
|
||||||
// Finally, show some information about the framebuffer,
|
// Finally, show some information about the framebuffer,
|
||||||
// but only on the first initialization
|
// but only on the first initialization
|
||||||
if(myInitializedCount == 1 && myOSystem->settings().getBool("showinfo"))
|
if(myInitializedCount == 1 && myOSystem->settings().getBool("showinfo"))
|
||||||
|
@ -247,7 +252,7 @@ void FrameBuffer::update()
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FrameBuffer::showMessage(const string& message, MessagePosition position,
|
void FrameBuffer::showMessage(const string& message, MessagePosition position,
|
||||||
int color)
|
UIColor color)
|
||||||
{
|
{
|
||||||
// Erase old messages on the screen
|
// Erase old messages on the screen
|
||||||
if(myMsg.counter > 0)
|
if(myMsg.counter > 0)
|
||||||
|
@ -477,6 +482,35 @@ void FrameBuffer::resetSurfaces()
|
||||||
iter->second->reload();
|
iter->second->reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
const FBSurface* FrameBuffer::smallTIASurface()
|
||||||
|
{
|
||||||
|
// This method isn't terribly fast, as it does a complete draw each time
|
||||||
|
// it's called and doesn't use direct pixel access
|
||||||
|
// Do not use it in time-sensitive situations
|
||||||
|
if(&myOSystem->console())
|
||||||
|
{
|
||||||
|
const MediaSource& src = myOSystem->console().mediaSource();
|
||||||
|
|
||||||
|
mySmallTiaSurface->setWidth(src.width() << 1); // should always be 320
|
||||||
|
mySmallTiaSurface->setHeight(src.height()); // can be up to 260
|
||||||
|
|
||||||
|
uInt8* currentFrame = src.currentFrameBuffer();
|
||||||
|
uInt8* previousFrame = src.previousFrameBuffer();
|
||||||
|
|
||||||
|
for(uInt32 y = 0; y < src.height(); ++y)
|
||||||
|
{
|
||||||
|
for(uInt32 x = 0; x < src.width(); ++x)
|
||||||
|
{
|
||||||
|
mySmallTiaSurface->fillTIARect(x + x, y, 2, 1,
|
||||||
|
currentFrame[y*160+x],
|
||||||
|
myUsePhosphor ? previousFrame[y*160+x] : -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mySmallTiaSurface;
|
||||||
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FrameBuffer::setTIAPalette(const uInt32* palette)
|
void FrameBuffer::setTIAPalette(const uInt32* palette)
|
||||||
{
|
{
|
||||||
|
@ -519,12 +553,12 @@ void FrameBuffer::setTIAPalette(const uInt32* palette)
|
||||||
void FrameBuffer::setUIPalette(const uInt32* palette)
|
void FrameBuffer::setUIPalette(const uInt32* palette)
|
||||||
{
|
{
|
||||||
// Set palette for GUI
|
// Set palette for GUI
|
||||||
for(int i = 0; i < kNumColors-256; ++i)
|
for(int i = 0; i < kNumUIColors; ++i)
|
||||||
{
|
{
|
||||||
Uint8 r = (palette[i] >> 16) & 0xff;
|
Uint8 r = (palette[i] >> 16) & 0xff;
|
||||||
Uint8 g = (palette[i] >> 8) & 0xff;
|
Uint8 g = (palette[i] >> 8) & 0xff;
|
||||||
Uint8 b = palette[i] & 0xff;
|
Uint8 b = palette[i] & 0xff;
|
||||||
myDefPalette[i+256] = mapRGB(r, g, b);
|
myUIPalette[i] = mapRGB(r, g, b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1059,7 +1093,7 @@ void FrameBuffer::VideoModeList::print()
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurface::box(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
void FBSurface::box(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
int colorA, int colorB)
|
UIColor colorA, UIColor colorB)
|
||||||
{
|
{
|
||||||
hLine(x + 1, y, x + w - 2, colorA);
|
hLine(x + 1, y, x + w - 2, colorA);
|
||||||
hLine(x, y + 1, x + w - 1, colorA);
|
hLine(x, y + 1, x + w - 1, colorA);
|
||||||
|
@ -1074,7 +1108,7 @@ void FBSurface::box(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurface::frameRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
void FBSurface::frameRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
int color, FrameStyle style)
|
UIColor color, FrameStyle style)
|
||||||
{
|
{
|
||||||
switch(style)
|
switch(style)
|
||||||
{
|
{
|
||||||
|
@ -1111,7 +1145,7 @@ void FBSurface::frameRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurface::drawString(const GUI::Font* font, const string& s,
|
void FBSurface::drawString(const GUI::Font* font, const string& s,
|
||||||
int x, int y, int w,
|
int x, int y, int w,
|
||||||
int color, TextAlignment align,
|
UIColor color, TextAlignment align,
|
||||||
int deltax, bool useEllipsis)
|
int deltax, bool useEllipsis)
|
||||||
{
|
{
|
||||||
const int leftX = x, rightX = x + w;
|
const int leftX = x, rightX = x + w;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBuffer.hxx,v 1.111 2009-01-01 18:13:35 stephena Exp $
|
// $Id: FrameBuffer.hxx,v 1.112 2009-01-03 15:44:13 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef FRAMEBUFFER_HXX
|
#ifndef FRAMEBUFFER_HXX
|
||||||
|
@ -56,8 +56,8 @@ enum MessagePosition {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Colors indices to use for the various GUI elements
|
// Colors indices to use for the various GUI elements
|
||||||
enum {
|
enum UIColor {
|
||||||
kColor = 256,
|
kColor,
|
||||||
kBGColor,
|
kBGColor,
|
||||||
kShadowColor,
|
kShadowColor,
|
||||||
kTextColor,
|
kTextColor,
|
||||||
|
@ -78,7 +78,7 @@ enum {
|
||||||
kDbgChangedColor,
|
kDbgChangedColor,
|
||||||
kDbgChangedTextColor,
|
kDbgChangedTextColor,
|
||||||
kDbgColorHi,
|
kDbgColorHi,
|
||||||
kNumColors
|
kNumUIColors
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ enum {
|
||||||
turn drawn here as well.
|
turn drawn here as well.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBuffer.hxx,v 1.111 2009-01-01 18:13:35 stephena Exp $
|
@version $Id: FrameBuffer.hxx,v 1.112 2009-01-03 15:44:13 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FrameBuffer
|
class FrameBuffer
|
||||||
{
|
{
|
||||||
|
@ -133,7 +133,7 @@ class FrameBuffer
|
||||||
*/
|
*/
|
||||||
void showMessage(const string& message,
|
void showMessage(const string& message,
|
||||||
MessagePosition position = kBottomCenter,
|
MessagePosition position = kBottomCenter,
|
||||||
int color = kTextColorHi);
|
UIColor color = kTextColorHi);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Toggles showing or hiding framerate statistics.
|
Toggles showing or hiding framerate statistics.
|
||||||
|
@ -172,6 +172,19 @@ class FrameBuffer
|
||||||
*/
|
*/
|
||||||
FBSurface* surface(int id) const;
|
FBSurface* surface(int id) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns a surface representing the TIA image in 1x mode without
|
||||||
|
any postprocessing (aka, no filtering, scanlines, etc) sized at
|
||||||
|
maximum 320 x 260 pixels. The phosphor effect *is* applied when
|
||||||
|
necessary, though. This is useful for those parts of the codebase
|
||||||
|
that need an unfiltered TIA image (snapshots in 1x mode, debugger,
|
||||||
|
etc). Note that if a console hasn't been created when this
|
||||||
|
method is called, a blank surface is returned.
|
||||||
|
|
||||||
|
@return A pointer to a valid TIA surface.
|
||||||
|
*/
|
||||||
|
const FBSurface* smallTIASurface();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns the current dimensions of the framebuffer image.
|
Returns the current dimensions of the framebuffer image.
|
||||||
Note that this will take into account the current scaling (if any)
|
Note that this will take into account the current scaling (if any)
|
||||||
|
@ -291,7 +304,10 @@ class FrameBuffer
|
||||||
virtual BufferType type() const = 0;
|
virtual BufferType type() const = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This method is called to get the specified scanline data.
|
This method is called to get the specified scanline data from the
|
||||||
|
viewable FrameBuffer area. Note that this isn't the same as any
|
||||||
|
internal surfaces that may be in use; it should return the actual
|
||||||
|
data as it is currently seen onscreen.
|
||||||
|
|
||||||
@param row The row we are looking for
|
@param row The row we are looking for
|
||||||
@param data The actual pixel data (in bytes)
|
@param data The actual pixel data (in bytes)
|
||||||
|
@ -406,8 +422,11 @@ class FrameBuffer
|
||||||
// Amount to blend when using phosphor effect
|
// Amount to blend when using phosphor effect
|
||||||
int myPhosphorBlend;
|
int myPhosphorBlend;
|
||||||
|
|
||||||
|
// UI palette
|
||||||
|
Uint32 myUIPalette[kNumUIColors];
|
||||||
|
|
||||||
// TIA palettes for normal and phosphor modes
|
// TIA palettes for normal and phosphor modes
|
||||||
Uint32 myDefPalette[256+kNumColors];
|
Uint32 myDefPalette[256];
|
||||||
Uint32 myAvgPalette[256][256];
|
Uint32 myAvgPalette[256][256];
|
||||||
|
|
||||||
// Names of the TIA filters that can be used for this framebuffer
|
// Names of the TIA filters that can be used for this framebuffer
|
||||||
|
@ -513,7 +532,7 @@ class FrameBuffer
|
||||||
string text;
|
string text;
|
||||||
int counter;
|
int counter;
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
uInt32 color;
|
UIColor color;
|
||||||
FBSurface* surface;
|
FBSurface* surface;
|
||||||
int surfaceID;
|
int surfaceID;
|
||||||
bool enabled;
|
bool enabled;
|
||||||
|
@ -530,6 +549,11 @@ class FrameBuffer
|
||||||
map<int,FBSurface*> mySurfaceList;
|
map<int,FBSurface*> mySurfaceList;
|
||||||
int mySurfaceCount;
|
int mySurfaceCount;
|
||||||
|
|
||||||
|
// A surface representing TIA emulation in 1x mode
|
||||||
|
// The parent FrameBuffer class (ie, this class) is responsible for
|
||||||
|
// initializing and deleting this surface
|
||||||
|
FBSurface* mySmallTiaSurface;
|
||||||
|
|
||||||
// Holds static strings for the remap menu (emulation and menu events)
|
// Holds static strings for the remap menu (emulation and menu events)
|
||||||
static GraphicsMode ourGraphicsModes[GFX_NumModes];
|
static GraphicsMode ourGraphicsModes[GFX_NumModes];
|
||||||
};
|
};
|
||||||
|
@ -544,7 +568,7 @@ class FrameBuffer
|
||||||
FrameBuffer type.
|
FrameBuffer type.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBuffer.hxx,v 1.111 2009-01-01 18:13:35 stephena Exp $
|
@version $Id: FrameBuffer.hxx,v 1.112 2009-01-03 15:44:13 stephena Exp $
|
||||||
*/
|
*/
|
||||||
// Text alignment modes for drawString()
|
// Text alignment modes for drawString()
|
||||||
enum TextAlignment {
|
enum TextAlignment {
|
||||||
|
@ -579,7 +603,7 @@ class FBSurface
|
||||||
@param x2 The second x coordinate
|
@param x2 The second x coordinate
|
||||||
@param color The color of the line
|
@param color The color of the line
|
||||||
*/
|
*/
|
||||||
virtual void hLine(uInt32 x, uInt32 y, uInt32 x2, int color) = 0;
|
virtual void hLine(uInt32 x, uInt32 y, uInt32 x2, UIColor color) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This method should be called to draw a vertical line.
|
This method should be called to draw a vertical line.
|
||||||
|
@ -589,19 +613,34 @@ class FBSurface
|
||||||
@param y2 The second y coordinate
|
@param y2 The second y coordinate
|
||||||
@param color The color of the line
|
@param color The color of the line
|
||||||
*/
|
*/
|
||||||
virtual void vLine(uInt32 x, uInt32 y, uInt32 y2, int color) = 0;
|
virtual void vLine(uInt32 x, uInt32 y, uInt32 y2, UIColor color) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This method should be called to draw a filled rectangle.
|
This method should be called to draw a filled rectangle using the
|
||||||
|
UI palette.
|
||||||
|
|
||||||
@param x The x coordinate
|
@param x The x coordinate
|
||||||
@param y The y coordinate
|
@param y The y coordinate
|
||||||
@param w The width of the area
|
@param w The width of the area
|
||||||
@param h The height of the area
|
@param h The height of the area
|
||||||
@param color The color of the area
|
@param color
|
||||||
*/
|
*/
|
||||||
virtual void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
virtual void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
int color) = 0;
|
UIColor color) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
This method should be called to draw a filled rectangle using the
|
||||||
|
TIA palette(s).
|
||||||
|
|
||||||
|
@param x The x coordinate
|
||||||
|
@param y The y coordinate
|
||||||
|
@param w The width of the area
|
||||||
|
@param h The height of the area
|
||||||
|
@param c1 Indices into the relevant TIA palettes
|
||||||
|
@param c2 Indices into the relevant TIA palettes
|
||||||
|
*/
|
||||||
|
virtual void fillTIARect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
|
int c1, int c2 = -1) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This method should be called to draw the specified character.
|
This method should be called to draw the specified character.
|
||||||
|
@ -613,7 +652,7 @@ class FBSurface
|
||||||
@param color The color of the character
|
@param color The color of the character
|
||||||
*/
|
*/
|
||||||
virtual void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y,
|
virtual void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y,
|
||||||
int color) = 0;
|
UIColor color) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This method should be called to draw the bitmap image.
|
This method should be called to draw the bitmap image.
|
||||||
|
@ -624,7 +663,7 @@ class FBSurface
|
||||||
@param color The color of the character
|
@param color The color of the character
|
||||||
@param h The height of the data image
|
@param h The height of the data image
|
||||||
*/
|
*/
|
||||||
virtual void drawBitmap(uInt32* bitmap, uInt32 x, uInt32 y, int color,
|
virtual void drawBitmap(uInt32* bitmap, uInt32 x, uInt32 y, UIColor color,
|
||||||
uInt32 h = 8) = 0;
|
uInt32 h = 8) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -722,7 +761,7 @@ class FBSurface
|
||||||
@param colorB Darker color for inside line.
|
@param colorB Darker color for inside line.
|
||||||
*/
|
*/
|
||||||
void box(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
void box(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
int colorA, int colorB);
|
UIColor colorA, UIColor colorB);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This method should be called to draw a framed rectangle.
|
This method should be called to draw a framed rectangle.
|
||||||
|
@ -735,7 +774,7 @@ class FBSurface
|
||||||
@param color The color of the surrounding frame
|
@param color The color of the surrounding frame
|
||||||
*/
|
*/
|
||||||
void frameRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
void frameRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h,
|
||||||
int color, FrameStyle style = kSolidLine);
|
UIColor color, FrameStyle style = kSolidLine);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This method should be called to draw the specified string.
|
This method should be called to draw the specified string.
|
||||||
|
@ -752,7 +791,7 @@ class FBSurface
|
||||||
@param useEllipsis Whether to use '...' when the string is too long
|
@param useEllipsis Whether to use '...' when the string is too long
|
||||||
*/
|
*/
|
||||||
void drawString(const GUI::Font* font, const string& str, int x, int y, int w,
|
void drawString(const GUI::Font* font, const string& str, int x, int y, int w,
|
||||||
int color, TextAlignment align = kTextAlignLeft,
|
UIColor color, TextAlignment align = kTextAlignLeft,
|
||||||
int deltax = 0, bool useEllipsis = true);
|
int deltax = 0, bool useEllipsis = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: OSystem.cxx,v 1.139 2009-01-01 22:44:14 stephena Exp $
|
// $Id: OSystem.cxx,v 1.140 2009-01-03 15:44:13 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
@ -871,7 +871,7 @@ void OSystem::queryVideoHardware()
|
||||||
kDbgChangedTextColor Text color for changed cells
|
kDbgChangedTextColor Text color for changed cells
|
||||||
kDbgColorHi Highlighted color in debugger data cells
|
kDbgColorHi Highlighted color in debugger data cells
|
||||||
*/
|
*/
|
||||||
uInt32 OSystem::ourGUIColors[kNumUIPalettes][kNumColors-256] = {
|
uInt32 OSystem::ourGUIColors[kNumUIPalettes][kNumUIColors] = {
|
||||||
// Standard
|
// Standard
|
||||||
{ 0x686868, 0x000000, 0x404040, 0x000000, 0x62a108, 0x9f0000,
|
{ 0x686868, 0x000000, 0x404040, 0x000000, 0x62a108, 0x9f0000,
|
||||||
0xc9af7c, 0xf0f0cf, 0xc80000,
|
0xc9af7c, 0xf0f0cf, 0xc80000,
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: OSystem.hxx,v 1.70 2009-01-01 22:44:14 stephena Exp $
|
// $Id: OSystem.hxx,v 1.71 2009-01-03 15:44:13 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef OSYSTEM_HXX
|
#ifndef OSYSTEM_HXX
|
||||||
|
@ -56,7 +56,7 @@ typedef Common::Array<Resolution> ResolutionList;
|
||||||
other objects belong.
|
other objects belong.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: OSystem.hxx,v 1.70 2009-01-01 22:44:14 stephena Exp $
|
@version $Id: OSystem.hxx,v 1.71 2009-01-03 15:44:13 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class OSystem
|
class OSystem
|
||||||
{
|
{
|
||||||
|
@ -521,7 +521,7 @@ class OSystem
|
||||||
TimingInfo myTimingInfo;
|
TimingInfo myTimingInfo;
|
||||||
|
|
||||||
// Table of RGB values for GUI elements
|
// Table of RGB values for GUI elements
|
||||||
static uInt32 ourGUIColors[kNumUIPalettes][kNumColors-256];
|
static uInt32 ourGUIColors[kNumUIPalettes][kNumUIColors];
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TIA.cxx,v 1.95 2009-01-01 18:13:37 stephena Exp $
|
// $Id: TIA.cxx,v 1.96 2009-01-03 15:44:13 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
//#define DEBUG_HMOVE
|
//#define DEBUG_HMOVE
|
||||||
|
@ -527,13 +527,15 @@ void TIA::update()
|
||||||
uInt32 totalClocks = (mySystem->cycles() * 3) - myClockWhenFrameStarted;
|
uInt32 totalClocks = (mySystem->cycles() * 3) - myClockWhenFrameStarted;
|
||||||
myCurrentScanline = totalClocks / 228;
|
myCurrentScanline = totalClocks / 228;
|
||||||
|
|
||||||
if(myPartialFrameFlag) {
|
if(myPartialFrameFlag)
|
||||||
// grey out old frame contents
|
{
|
||||||
if(!myFrameGreyed) greyOutFrame();
|
// Grey out old frame contents
|
||||||
|
if(!myFrameGreyed)
|
||||||
|
greyOutFrame();
|
||||||
myFrameGreyed = true;
|
myFrameGreyed = true;
|
||||||
} else {
|
|
||||||
endFrame();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
endFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: AboutDialog.cxx,v 1.27 2009-01-01 18:13:38 stephena Exp $
|
// $Id: AboutDialog.cxx,v 1.28 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -195,7 +195,7 @@ void AboutDialog::displayInfo()
|
||||||
{
|
{
|
||||||
const char *str = dscStr[i].c_str();
|
const char *str = dscStr[i].c_str();
|
||||||
TextAlignment align = kTextAlignCenter;
|
TextAlignment align = kTextAlignCenter;
|
||||||
int color = kTextColor;
|
UIColor color = kTextColor;
|
||||||
|
|
||||||
while (str[0] == '\\')
|
while (str[0] == '\\')
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: EditableWidget.cxx,v 1.29 2009-01-01 18:13:38 stephena Exp $
|
// $Id: EditableWidget.cxx,v 1.30 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -187,9 +187,7 @@ void EditableWidget::drawCaret()
|
||||||
if (!_editable || !isVisible() || !_boss->isVisible() || !_hasFocus)
|
if (!_editable || !isVisible() || !_boss->isVisible() || !_hasFocus)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GUI::Rect editRect = getEditRect();
|
const GUI::Rect& editRect = getEditRect();
|
||||||
|
|
||||||
int color = kTextColorHi;
|
|
||||||
int x = editRect.left;
|
int x = editRect.left;
|
||||||
int y = editRect.top;
|
int y = editRect.top;
|
||||||
|
|
||||||
|
@ -199,7 +197,7 @@ void EditableWidget::drawCaret()
|
||||||
y += _y;
|
y += _y;
|
||||||
|
|
||||||
FBSurface& s = _boss->dialog().surface();
|
FBSurface& s = _boss->dialog().surface();
|
||||||
s.vLine(x, y+2, y + editRect.height() - 3, color);
|
s.vLine(x, y+2, y + editRect.height() - 3, kTextColorHi);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: LauncherDialog.cxx,v 1.94 2009-01-02 01:50:03 stephena Exp $
|
// $Id: LauncherDialog.cxx,v 1.95 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -84,7 +84,7 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
// Before we add the list, we need to know the size of the RomInfoWidget
|
// Before we add the list, we need to know the size of the RomInfoWidget
|
||||||
int romWidth = 0;
|
int romWidth = 0;
|
||||||
int romSize = instance().settings().getInt("romviewer");
|
int romSize = instance().settings().getInt("romviewer");
|
||||||
if(romSize > 1 && w >= 1000 && h >= 800)
|
if(romSize > 1 && w >= 1000 && h >= 760)
|
||||||
romWidth = 660;
|
romWidth = 660;
|
||||||
else if(romSize > 0 && w >= 640 && h >= 480)
|
else if(romSize > 0 && w >= 640 && h >= 480)
|
||||||
romWidth = 365;
|
romWidth = 365;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: StringListWidget.cxx,v 1.12 2009-01-01 18:13:39 stephena Exp $
|
// $Id: StringListWidget.cxx,v 1.13 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -61,7 +61,7 @@ void StringListWidget::drawWidget(bool hilite)
|
||||||
// Draw the list items
|
// Draw the list items
|
||||||
for (i = 0, pos = _currentPos; i < _rows && pos < len; i++, pos++)
|
for (i = 0, pos = _currentPos; i < _rows && pos < len; i++, pos++)
|
||||||
{
|
{
|
||||||
const int textColor = (_selectedItem == pos && _editMode)
|
const UIColor textColor = (_selectedItem == pos && _editMode)
|
||||||
? kColor : kTextColor;
|
? kColor : kTextColor;
|
||||||
const int y = _y + 2 + _fontHeight * i;
|
const int y = _y + 2 + _fontHeight * i;
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TabWidget.cxx,v 1.33 2009-01-01 18:13:39 stephena Exp $
|
// $Id: TabWidget.cxx,v 1.34 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -252,7 +252,7 @@ void TabWidget::loadConfig()
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void TabWidget::box(int x, int y, int width, int height,
|
void TabWidget::box(int x, int y, int width, int height,
|
||||||
int colorA, int colorB, bool omitBottom)
|
UIColor colorA, UIColor colorB, bool omitBottom)
|
||||||
{
|
{
|
||||||
//cerr << "TabWidget::box\n";
|
//cerr << "TabWidget::box\n";
|
||||||
FBSurface& s = _boss->dialog().surface();
|
FBSurface& s = _boss->dialog().surface();
|
||||||
|
@ -294,8 +294,8 @@ void TabWidget::drawWidget(bool hilite)
|
||||||
int i, x = _x + kTabLeftOffset;
|
int i, x = _x + kTabLeftOffset;
|
||||||
for (i = 0; i < (int)_tabs.size(); ++i)
|
for (i = 0; i < (int)_tabs.size(); ++i)
|
||||||
{
|
{
|
||||||
int fontcolor = _tabs[i].enabled ? kTextColor : kColor;
|
UIColor fontcolor = _tabs[i].enabled ? kTextColor : kColor;
|
||||||
int boxcolor = (i == _activeTab) ? kColor : kShadowColor;
|
UIColor boxcolor = (i == _activeTab) ? kColor : kShadowColor;
|
||||||
int yOffset = (i == _activeTab) ? 0 : 2;
|
int yOffset = (i == _activeTab) ? 0 : 2;
|
||||||
box(x, _y + yOffset, _tabWidth, _tabHeight - yOffset, boxcolor, boxcolor, (i == _activeTab));
|
box(x, _y + yOffset, _tabWidth, _tabHeight - yOffset, boxcolor, boxcolor, (i == _activeTab));
|
||||||
s.drawString(_font, _tabs[i].title, x + kTabPadding,
|
s.drawString(_font, _tabs[i].title, x + kTabPadding,
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: TabWidget.hxx,v 1.21 2009-01-01 18:13:39 stephena Exp $
|
// $Id: TabWidget.hxx,v 1.22 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -91,7 +91,7 @@ class TabWidget : public Widget, public CommandSender
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void box(int x, int y, int width, int height,
|
void box(int x, int y, int width, int height,
|
||||||
int colorA, int colorB, bool omitBottom);
|
UIColor colorA, UIColor colorB, bool omitBottom);
|
||||||
|
|
||||||
void updateActiveTab();
|
void updateActiveTab();
|
||||||
};
|
};
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: UIDialog.cxx,v 1.17 2009-01-01 18:13:39 stephena Exp $
|
// $Id: UIDialog.cxx,v 1.18 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -96,7 +96,7 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
ypos += lineHeight + 4;
|
ypos += lineHeight + 4;
|
||||||
|
|
||||||
// Launcher font
|
// Launcher font
|
||||||
pwidth = font.getStringWidth("2x (1000x800)");
|
pwidth = font.getStringWidth("2x (1000x760)");
|
||||||
items.clear();
|
items.clear();
|
||||||
items.push_back("Small", "small");
|
items.push_back("Small", "small");
|
||||||
items.push_back("Large", "large");
|
items.push_back("Large", "large");
|
||||||
|
@ -110,7 +110,7 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
items.clear();
|
items.clear();
|
||||||
items.push_back("Off", "0");
|
items.push_back("Off", "0");
|
||||||
items.push_back("1x (640x480) ", "1");
|
items.push_back("1x (640x480) ", "1");
|
||||||
items.push_back("2x (1000x800)", "2");
|
items.push_back("2x (1000x760)", "2");
|
||||||
myRomViewerPopup =
|
myRomViewerPopup =
|
||||||
new PopUpWidget(myTab, font, xpos, ypos+1, pwidth, lineHeight, items,
|
new PopUpWidget(myTab, font, xpos, ypos+1, pwidth, lineHeight, items,
|
||||||
"ROM Info viewer: ", lwidth);
|
"ROM Info viewer: ", lwidth);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Widget.cxx,v 1.59 2009-01-01 18:13:39 stephena Exp $
|
// $Id: Widget.cxx,v 1.60 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -517,7 +517,7 @@ void CheckboxWidget::drawWidget(bool hilite)
|
||||||
if(_state)
|
if(_state)
|
||||||
{
|
{
|
||||||
unsigned int* img = _fillRect ? checked_img_o : checked_img_x;
|
unsigned int* img = _fillRect ? checked_img_o : checked_img_x;
|
||||||
int color = _fillRect ? kWidFrameColor : kCheckColor;
|
UIColor color = _fillRect ? kWidFrameColor : kCheckColor;
|
||||||
s.drawBitmap(img, _x + 3, _y + _boxY + 3, color);
|
s.drawBitmap(img, _x + 3, _y + _boxY + 3, color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Widget.hxx,v 1.64 2009-01-01 18:13:39 stephena Exp $
|
// $Id: Widget.hxx,v 1.65 2009-01-03 15:44:13 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -83,7 +83,7 @@ enum {
|
||||||
This is the base class for all widgets.
|
This is the base class for all widgets.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: Widget.hxx,v 1.64 2009-01-01 18:13:39 stephena Exp $
|
@version $Id: Widget.hxx,v 1.65 2009-01-03 15:44:13 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class Widget : public GuiObject
|
class Widget : public GuiObject
|
||||||
{
|
{
|
||||||
|
@ -135,10 +135,10 @@ class Widget : public GuiObject
|
||||||
|
|
||||||
virtual const GUI::Font* font() { return _font; }
|
virtual const GUI::Font* font() { return _font; }
|
||||||
|
|
||||||
void setTextColor(int color) { _textcolor = color; }
|
void setTextColor(UIColor color) { _textcolor = color; }
|
||||||
void setTextColorHi(int color) { _textcolorhi = color; }
|
void setTextColorHi(UIColor color) { _textcolorhi = color; }
|
||||||
void setBGColor(int color) { _bgcolor = color; }
|
void setBGColor(UIColor color) { _bgcolor = color; }
|
||||||
void setBGColorHi(int color) { _bgcolorhi = color; }
|
void setBGColorHi(UIColor color) { _bgcolorhi = color; }
|
||||||
|
|
||||||
virtual void loadConfig() {}
|
virtual void loadConfig() {}
|
||||||
|
|
||||||
|
@ -166,10 +166,10 @@ class Widget : public GuiObject
|
||||||
bool _hasFocus;
|
bool _hasFocus;
|
||||||
int _fontWidth;
|
int _fontWidth;
|
||||||
int _fontHeight;
|
int _fontHeight;
|
||||||
int _bgcolor;
|
UIColor _bgcolor;
|
||||||
int _bgcolorhi;
|
UIColor _bgcolorhi;
|
||||||
int _textcolor;
|
UIColor _textcolor;
|
||||||
int _textcolorhi;
|
UIColor _textcolorhi;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static Widget* findWidgetInChain(Widget* start, int x, int y);
|
static Widget* findWidgetInChain(Widget* start, int x, int y);
|
||||||
|
@ -266,7 +266,7 @@ class CheckboxWidget : public ButtonWidget
|
||||||
bool _fillRect;
|
bool _fillRect;
|
||||||
bool _drawBox;
|
bool _drawBox;
|
||||||
|
|
||||||
int _fillColor;
|
UIColor _fillColor;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int _boxY;
|
int _boxY;
|
||||||
|
|
Loading…
Reference in New Issue