MrcSnm/HipremeEngine

Attempting to resize or move the screen may cause an unresponsive white screen to appear (Linux)

MetalMaxMX opened this issue · 6 comments

Hey so it finally built! Though not without its issues. If I attempt to close the application (without turning off the terminal) it does not responds to that action, also, slight resizing of the window causes the entire program to go blank at prompt and stay unresponsive as well. This is all on X11, though it could also be an Xfwm bug (though not so sure about that either)

I think this is related to missing files on your system (some assets used by the test scene such as consolas.fnt), as it is currently building with a test scene.
Enter this test scene and try removing the file loading lines, as I don't know whether it is wise yet to distribute those assets here in the engine itself.

For generating the project itself as the engine won't be meant to be used by calling just dub on it, you will need to use the projectgenerator inside /projects.

And from the project you will need to call dub -c run.

Maybe I'll write a new test screen for the default "dub" command

You can check on your terminal for errors, just try looking into it

I'd appreciate a new test screen for the default dub command since dub -c run does not works when inside one of the projects inside the folder. I noticed that some of the fonts you used in there were stuff like Consolas or so, perhaps replace them with SIL-licensed fonts like Fira Code or Cascadia Code?

Oh, and here's another terminal log I was able to find when moving and resizing:

ERROR: Fullscreen is not implemented for this platform
modules/renderer/source/hip/hiprenderer/renderer.d:298 at bool hip.hiprenderer.renderer.HipRenderer.init
Changing window size to [1280 720]
modules/renderer/source/hip/hiprenderer/renderer.d:307 at void hip.hiprenderer.renderer.HipRenderer.setWindowSize
Initializing scene hip.view.ttftestscene.TTFTestScene
source/hip/systems/game.d:239 at void hip.systems.game.GameSystem.addScene
ERROR:
Error: at module 'hip.filesystem.systems.dstd' modules/filesystem/source/hip/filesystem/systems/dstd.d:10(bool hip.filesystem.systems.dstd.HipStdFileSystemInteraction.read(string path, out void[] output))
FileSystem Error:
ERROR: Filed named '/home/mega/HipremeEngine/bin/desktop/assets/fonts/consolas.fnt' does not exists
ERROR:
Error: at module 'hip.filesystem.systems.dstd' modules/filesystem/source/hip/filesystem/systems/dstd.d:10(bool hip.filesystem.systems.dstd.HipStdFileSystemInteraction.read(string path, out void[] output))
FileSystem Error:
ERROR: Filed named '/home/mega/HipremeEngine/bin/desktop/assets' does not exists
ERROR:
Error: at module 'hip.filesystem.systems.dstd' modules/filesystem/source/hip/filesystem/systems/dstd.d:10(bool hip.filesystem.systems.dstd.HipStdFileSystemInteraction.read(string path, out void[] output))
FileSystem Error:
ERROR: Filed named '/home/mega/HipremeEngine/bin/desktop/assets/graphics/sprites/default.png' does not exists
ERROR:
Error: at module 'hip.image' modules/image/source/hip/image.d:136(bool hip.image.HipImageImpl.loadFromMemory(ubyte[] data))
No data was passed to load Image.
ERROR: Could not load image
ERROR:
Error: at module 'hip.image' modules/image/source/hip/image.d:136(bool hip.image.HipImageImpl.loadFromMemory(ubyte[] data))
No data was passed to load Image.
ERROR: Could not load image
ERROR: Could not read image
modules/assets/source/hip/assetmanager.d:440 at typeof(null) hip.assetmanager.HipAssetManager.loadBMFont.__lambda3!string.__lambda3
Expose event
object.Error@(0): No partial data was set before taking it

modules/assets/source/hip/assetmanager.d:91 void[] hip.assetmanager.HipAssetLoadTask.takePartialData() [0x559fbb7ea6bb]
modules/assets/source/hip/assetmanager.d:313 void hip.assetmanager.HipAssetManager.loadComplex(immutable(char)[], immutable(char)[], void[] delegate(immutable(char)[]), hip.asset.HipAsset delegate(void[])).__lambda7!(immutable(char)[]).__lambda7(immutable(char)[]) [0x559fbb7eae5d]
modules/util/source/hip/util/concurrency.d:344 void hip.util.concurrency.HipWorkerPool.notifyOnFinish(void delegate(immutable(char)[])).__lambda2!(immutable(char)[]).__lambda2(immutable(char)[]).__lambda2() [0x559fbb8b0ccb]
modules/util/source/hip/util/concurrency.d:361 void hip.util.concurrency.HipWorkerPool.pollFinished() [0x559fbb8b0dc0]
modules/assets/source/hip/assetmanager.d:492 void hip.assetmanager.HipAssetManager.update() [0x559fbb7ebae0]
source/hip/systems/game.d:262 bool hip.systems.game.GameSystem.update(float) [0x559fbb7e0024]
source/app.d:333 bool app.HipremeUpdateBase() [0x559fbb799df0]
source/app.d:377 void app.HipremeDesktopGameLoop() [0x559fbb799e30]
source/app.d:210 HipremeMain [0x559fbb799d48]
source/app.d:326 _Dmain [0x559fbb799dc7]

So, I'm thinking whether I should create a new repository with examples. That way I could distribute more freely some free assets from the internet (and not pollute this repo). So, I believe that as a quick fix I'll do 2 things:

1: Change the default test scene to GeometryTestScene
2: Add a "start_here" HipremeEngine project in the projects folder

All right, that seems fair enough

I'll do a WIP for the sounds right now as I don't have a default sound yet and I need to do some other things, But you should have plenty of resources from this new test scene