Thanks for all that hints. I made a "clean" test program as shown below, so you could see how I did it now.
// ----------------------------------------------------------------------------
// Main.cpp
// ----------------------------------------------------------------------------
#include <stdio.h>
#include "DarkSDK.h"
// ----------------------------------------------------------------------------
void DarkSDK (void) // The app's main entry point
// ----------------------------------------------------------------------------
{
dbSyncOn();
dbSyncRate(0);
// Check for current screen resolution and color. Set up DX "fullscreen" with same values
HDC hDC = ::GetDC(NULL);
int iXsize = GetDeviceCaps(hDC,HORZRES);
int iYsize = GetDeviceCaps(hDC,VERTRES);
int iColors = GetDeviceCaps(hDC,BITSPIXEL);
::ReleaseDC(NULL, hDC);
dbSetDisplayMode(iXsize, iYsize, iColors);
dbSetWindowLayout(0,0,0);
dbSetWindowPosition(0,0);
dbColorBackdrop(0); // When clearing backbuffer, make it black (0)
dbBackdropOn(); // Erase backbuffer before each drawing cycle
// Set up map
dbLoadObject("hexagon_field.x",1);
int iCounter = 1;
for (int x=0;x<40;x++)
for(int y=0;y<40;y++)
{
iCounter++;
float fX = x*8.0f + (y%2)*(8.0f/2.0f);
float fY = ((40-1)*6.0f) - (y*6.0f);
dbInstanceObject(iCounter,1);
dbPositionObject(iCounter,fX,fY,0.0f);
}
dbPositionCamera(0,40.0f/2.0f*8.0f, -40.0f, -50.0f);
dbPitchCameraDown(0,-70.0f);
// The main game loop
while (LoopSDK())
{
if (dbEscapeKey()) break;
char dummy[100];
sprintf(dummy, "fps: %i, Polygons: %i", dbScreenFPS(), dbStatistic(1));
dbInk(dbRgb(255,255,0),0);
dbText(0,0,dummy);
dbSync();
}
}
This one does only show my 1600 field objects and the debug text (see picture attached), and goes up to about 170fps.
After cleaning out some unnecessary calls, the original program (including more text and things) runs at about 130fps now.
This seems as a good point to continue, I think, eh? Enough "fps reserve" to add more features.
Still have to try that dbExcludeObjectOn and dbLoadStaticObjects thingies, tho.
Thank you all.