@Flux
There are two types of object in DarkGDK. The first type includes things such as 3d objects and sprites. These are drawn automatically by DarkGDK every time dbSync is called. Also, when you create any of these objects, it enables the 3d backdrop. The 3d backdrop clears the screen every time you call dbSync.
The second type of object includes things such as text, boxes, lines, pasted images, etc. These things are drawn manually using drawing commands, and so every time the screen is cleared, they must be drawn again. Obviously, if the backdrop is enabled you must draw them before every dbSync because it clears the screen.
Another difference is when you drag the DarkGDK window. When this happens, your code is no longer running, and so only things in the first group will be drawn (because they are drawn by DarkGDK).