import std.stdio; import std.format; import std.conv; import hibis.core.engine; import hibis.math.types; import hibis.renderer.renderer; import hibis.logging.types; import hibis.callback; import hibis_rsdl.rsdl; import hibis_rsdl.resources.font; import core.thread; void logger(LoggingSeverity severity, string message) { writeln(format("[%s]: %s", to!string(severity), message)); } void main() { Renderer renderer = new RSDL("test", IntVec2(800, 600), &logger); Engine engine = new Engine(renderer, &logger); version(windows) { Font font = new Font("C:\\Windows\\Fonts\\Arial.ttf", 16); } else { Font font = new Font("/usr/share/fonts/noto/NotoSans-Light.ttf", 16); } ubyte red = 0; bool increase = true; logger(LoggingSeverity.Information, "Started Hibis test app! BEHOLD: Colours."); while (renderer.keepOpen) { engine.runNodeProcesses(); // Colour changing background! if ((red == 255 && increase) || (red == 0 && !increase)) { increase = !increase; } if (increase) red += 1; else red -= 1; // Clear screen then sleep for ~16ms renderer.clearScreen(Color(red, 0, 0, 255)); renderer.drawText(font, "TEST", IntRect(0, 0, 64, 64), Color(255, 255, 255, 255)); engine.drawNodes(); renderer.renderCurrent(); renderer.update(); Thread.sleep(16.msecs); } destroy(font); }