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:
parent
0f951e5684
commit
aefd8da093
14 changed files with 103 additions and 285 deletions
55
engine.cpp
55
engine.cpp
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue