mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-26 12:48:16 +00:00
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:
parent
91a8d25cea
commit
fababbe205
67
engines/testbed/gfxtests.cpp
Normal file
67
engines/testbed/gfxtests.cpp
Normal 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;
|
||||
|
||||
}
|
||||
|
||||
}
|
13
engines/testbed/gfxtests.h
Normal file
13
engines/testbed/gfxtests.h
Normal 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
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ MODULE := engines/testbed
|
||||
MODULE_OBJS := \
|
||||
detection.o \
|
||||
graphics.o \
|
||||
gfxtests.o \
|
||||
testbed.o
|
||||
|
||||
MODULE_DIRS += \
|
||||
|
Loading…
x
Reference in New Issue
Block a user