droped screenblocks, it's a bit too slow(on windows 7500 ati i can't even wrote to zbuffer), it doesn't detect many areas, if even would it will increase rects a lot and speed slow down much. ... and adopting half screen overlays kill solution completly

This commit is contained in:
Pawel Kolodziejski 2005-01-10 09:07:46 +00:00
parent 0f951e5684
commit aefd8da093
14 changed files with 103 additions and 285 deletions

View file

@ -22,7 +22,6 @@
#include "colormap.h"
#include "actor.h"
#include "textobject.h"
#include "screen.h"
#include "smush.h"
#include "driver_gl.h"
@ -125,22 +124,20 @@ void Engine::mainLoop() {
}
}
} else if (_mode == ENGINE_MODE_NORMAL) {
if (_currScene != NULL) {
// Update actor costumes
for (ActorListType::iterator i = _actors.begin(); i != _actors.end(); i++) {
Actor *a = *i;
if (_currScene != NULL && a->inSet(_currScene->name()) && a->visible())
a->update();
}
}
if (SCREENBLOCKS_GLOBAL)
screenBlocksReset();
g_driver->clearScreen();
if (SCREENBLOCKS_GLOBAL)
screenBlocksBlitDirtyBlocks();
g_driver->set3DMode();
if (_currScene != NULL) {
_currScene->setupCamera();
}
// Update actor costumes
for (ActorListType::iterator i = _actors.begin(); i != _actors.end(); i++) {
Actor *a = *i;
if (_currScene != NULL && a->inSet(_currScene->name()) && a->visible())
a->update();
}
if (_currScene != NULL) {
_currScene->drawBackground();
@ -165,27 +162,23 @@ void Engine::mainLoop() {
if (SHOWFPS_GLOBAL)
g_driver->drawEmergString(550, 25, fps, Color(255, 255, 255));
g_driver->set3DMode();
if (_currScene != NULL) {
_currScene->setupCamera();
// Draw actors
for (ActorListType::iterator i = _actors.begin(); i != _actors.end(); i++) {
Actor *a = *i;
if (_currScene != NULL && a->inSet(_currScene->name()) && a->visible())
a->draw();
}
if (SCREENBLOCKS_GLOBAL)
screenBlocksDrawDebug();
}
// Draw text
for (TextListType::iterator i = _textObjects.begin(); i != _textObjects.end(); i++) {
(*i)->draw();
}
g_driver->set3DMode();
// Draw actors
for (ActorListType::iterator i = _actors.begin(); i != _actors.end(); i++) {
Actor *a = *i;
if (_currScene != NULL && a->inSet(_currScene->name()) && a->visible())
a->draw();
}
}
// Draw text
for (TextListType::iterator i = _textObjects.begin(); i != _textObjects.end(); i++) {
(*i)->draw();
}
g_imuse->flushTracks();