able to display rectangle on screen using grabPalette() and copyRectToScreen, will use it to test palettes and autocomputeDirtyRects features

svn-id: r49404
This commit is contained in:
Neeraj Kumar 2010-06-03 03:55:08 +00:00
parent 91a8d25cea
commit fababbe205
4 changed files with 89 additions and 31 deletions

View File

@ -0,0 +1,67 @@
#include "testbed/gfxtests.h"
#include "testbed/testsuite.h"
#include "graphics/pixelformat.h"
namespace Testbed {
bool testFullScreenMode() {
printf("Testing fullscreen mode\n");
bool isFeaturePresent;
bool isFeatureEnabled;
isFeaturePresent = g_system->hasFeature(OSystem::kFeatureFullscreenMode);
isFeatureEnabled = g_system->getFeatureState(OSystem::kFeatureFullscreenMode);
printf("Testing Feature Presence.. \n");
if (isFeaturePresent) {
//Toggle
printf("Supported\n");
g_system->beginGFXTransaction();
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, !isFeatureEnabled);
g_system->endGFXTransaction();
g_system->delayMillis(1000);
g_system->beginGFXTransaction();
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, isFeatureEnabled);
g_system->endGFXTransaction();
}
return true;
}
bool testAspectRatio() {
int x_lim;
int y_lim;
x_lim = g_system->getWidth();
y_lim = g_system->getHeight();
Graphics::PixelFormat f = g_system->getScreenFormat();
printf("Screen is %d x %d using %d bytes per pixel\n", x_lim, y_lim, f.bytesPerPixel);
char blackbuf[16 * 20];
memset(blackbuf, 1, 16 * 20); // Prepare a buffer 16px wide and 240px high, to fit on a lateral strip
uint8 pal[2 * 4];
g_system->grabPalette(pal, 0, 2);
pal[4] = 255;
pal[5] = 255;
pal[6] = 0;
g_system->setPalette(pal, 0, 2);
g_system->copyRectToScreen((const byte *)blackbuf, 16, 20, 28, 16, 20); // Fix left strip
g_system->updateScreen();
return true;
}
}

View File

@ -0,0 +1,13 @@
#ifndef GFXTESTS_H
#define GFXTESTS_H
namespace Testbed {
// will contain function declarations for GFX tests
bool testFullScreenMode();
bool testAspectRatio();
// add more here
}
#endif

View File

@ -1,41 +1,17 @@
#include "testbed/graphics.h"
#include "testbed/gfxtests.h"
namespace Testbed {
bool testFullScreenMode() {
printf("Testing fullscreen mode\n");
bool isFeaturePresent;
bool isFeatureEnabled;
isFeaturePresent = g_system->hasFeature(OSystem::kFeatureFullscreenMode);
isFeatureEnabled = g_system->getFeatureState(OSystem::kFeatureFullscreenMode);
printf("Testing Feature Presence.. \n");
if (isFeaturePresent) {
//Toggle
printf("Supported\n");
g_system->beginGFXTransaction();
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, !isFeatureEnabled);
g_system->endGFXTransaction();
g_system->delayMillis(1000);
g_system->beginGFXTransaction();
g_system->setFeatureState(OSystem::kFeatureFullscreenMode, isFeatureEnabled);
g_system->endGFXTransaction();
}
return true;
}
GFXTestSuite::GFXTestSuite() {
addTest("FullScreenMode", &testFullScreenMode);
//addTest("FullScreenMode", &testFullScreenMode);
addTest("AspectRatio", &testAspectRatio);
}
GFXTestSuite::~GFXTestSuite() {
printf("Cleanup\n");
for (Common::Array<Test*>::iterator i = _testsToExecute.begin(); i != _testsToExecute.end(); ++i) {
delete (*i);
}
}
const char *GFXTestSuite::getName() {
@ -46,10 +22,11 @@ int GFXTestSuite::execute() {
//TODO: Implement the method
for (Common::Array<Test*>::iterator i = _testsToExecute.begin(); i != _testsToExecute.end(); ++i) {
printf("Executing Test:%s\n", ((*i)->featureName).c_str());
printf("Result:%d",(*i)->driver());
printf("Result:%d\n",(*i)->driver());
}
return 1;
}
}

View File

@ -3,6 +3,7 @@ MODULE := engines/testbed
MODULE_OBJS := \
detection.o \
graphics.o \
gfxtests.o \
testbed.o
MODULE_DIRS += \