Team DevLog MikeHart - Update 2021/07/11

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
715
I hope that QT is not needed for much longer because It eats resources and I only learned to use because of Cerberus-X. All it does is compilling a TED over and over again. What about a simple editor for simple people like me? I need cut copy paste, colours syntax, load/Save project, and a debug/play button.And a great view for documentation where you can overview and jump around easily.

Hades sounds like a great name and idea but what about an add-on for Visual Studio Code?
It takes lot of time to create an IDE. But do people actually use all those fancy IDE features that is put into all editors nowadays? Because again, they must take enormous efforts to create!

I don't know many coders and I don't know their habits but I for one never use predictors or whatever they are called, and nothing else either.
I happily use a simple editor with a good manual on the other hand that is worth a alot.

I can write the complete feature list here that I will use in my life time :
NEW LOAD SAVE, CUT COPY PASTE, SOME NICE STYLE, SOME NICE DOCUMENTATION. That's plenty IMHO.

Maybe Project management ontop of that. So one can handle LOADS OF FILES easily. Because, it is 2020, and we need it.
 

Arantor

New member
Joined
May 27, 2020
Messages
19
I started implementing syntax highlighting for Cerberus for Sublime Text 3 but I have a long way to go to get all the grammar in properly :/
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,042
As @Phil7 posted his progress, I guess I should do too. I am always heavily busy with daily life and my day job. That leaves less time for leisure. But I was able to do some stuff CX related.

I am trying to port some ImGui stuff to CX for Desktop and maybe IOS and so far it works good.

1615310068991.png


The code to produce this ui looks like this:

Code:
        startFrame()

        ig_BeginMainMenuBar()
            If ig_BeginMenu("File")
                If ig_MenuItem("Exit","CTRL+F") Then EndApp()
                ig_EndMenu()
            Endif
            If ig_BeginMenu("Edit")
                ig_MenuItem("Undo")
                ig_MenuItem("-")
                ig_MenuItem("Copy")
                ig_MenuItem("-")
                If ig_BeginMenu("Submenu")
                    ig_MenuItem("Entry 1#")
                    ig_MenuItem("Entry #2")
                    ig_EndMenu()
                Endif
                ig_EndMenu()
            Endif
            If ig_BeginMenu("View")
                If ig_MenuItem("show Window") Then showwindow = True
                ig_EndMenu()
            Endif
        ig_EndMainMenuBar()
        If showwindow
            showwindow = ig_Begin("Hello, world! This is CX 4#", True)
        
            ig_Text("Hover over me")
            If ig_IsItemHovered() Then ig_SetTooltip("I am a tooltip")
            If ig_Button("ba="+ba,[100.0,20.0]) Then ba+=1
            ig_Text("style= "+ig_GetStyleColorName(0))
              
            myInt  = ig_SliderInt("SliderInt ",  myInt , -20, 20)
            myFloat2 = ig_SliderFloat2("SliderFloat2",myFloat2, 0.0, 10.0)
            ig_PlotHistogram("PlotHistogram",[0.6, 10.1, 1.0, 5.5, 3.92, 0.1, 7.2 ], 7,2,"xxx",0.0,11.0,[0.0,80.0])
 
             If ig_TreeNode("Treenode #1")
                ig_Text("Entry #1")
                 if ig_TreeNode("Treenode #2")
                    ig_Text("Entry #2")
                       ig_TreePop()
                 Endif
                 ig_TreePop()
            Endif
            If ig_CollapsingHeader("Collapsing header")
                    ig_Text("Entry #3")
                    ig_TextColored([1.0,0.0,0.0,1.0], "Entry #4")
                    ig_TextColored([1.0,0.0,1.0,1.0], "Entry #5")
            Endif
            ig_BulletText("Bullet point 1");
            ig_TextDisabled("ig_TextDisabled");
            ig_LabelText("ig_LabelText","BeispielText");
            ig_TextWrapped("This text should automatically wrap on the edge of the window. The current implementation " +
                "for text wrapping follows simple rules suitable for English and possibly other languages.")
            ig_ProgressBar(0.5,[200.0,20.0],"Progressbar")
            inputTxt = ig_InputTextWithHint("password (w/ hint)", "<password>",inputTxt, ImGuiInputTextFlags_Password)
            inputMultiline = ig_InputTextMultiline("Mulitlinetext", inputMultiline)
            ig_End()
        Endif
          renderFrame()

ImGui is an intermediate GUI, means you do everything inside the OnRender Method of mojo or mojo2.
Because of the limitations of the CX language, you can't port something like this 100% and have to do some workarounds.
Also for some odd reason, MakeDocs has a problem with to many enumerate definitions. Have to look into this.
There is still quite some work to do, but I think it will be a nice addition to CX.
 

Holzchopf

Moderator
3rd Party Module Dev
Tutorial Author
Joined
Jul 31, 2017
Messages
493
Also for some odd reason, MakeDocs has a problem with to many enumerate definitions. Have to look into this.

oh no :oops: how exactly? Is it reproducible with just the enum definitions on their own? Could you share them, so I can investigate?
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,042
Ok @Holzchopf , here they are.

EDIT: Doooh, found my mistake. MakeDocs just works fine. It was a missing space between the # and Enumerate
 

Attachments

  • imgui.zip
    42.2 KB · Views: 19
Last edited:

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,042
Just finished updating Github with the newest stuff that will make it into the next release.
But there is still much more work to do:

Code:
FIX: [brl.requesters] Fixed compiling error on Linux.    (Author: MikeHart)
FIX: [brl.filesystem] Fixed CreateDir not being able to use cerberus://internal file paths.    (Author: MikeHart)
FIX: [docs] Corrected Latest new stuff section on the homepage.   (Author: MikeHart)
FIX: [docs/mojo.app] Typo correction.    (Author: Phil7)
FIX: [mojo2] Fixed Canvas.ReadPixels only reading the last framebuffer it was rendered to.    (Author: MikeHart)
FIX: [mojo/mojo2] Fixed Font.TextHeight returning the values without Glyph.yoffset.    (Author: MikeHart)
MOD: [mojo/mojo2] Changed DrawText to use TextHeight("") when being y-aligned.    (Author: MikeHart)
MOD: [agk/buildtarget] Added fixes for TGCs Android template.    (Author: MikeHart)
NEW: [mojo.input] Added KEY_ALT to the usable key codes.   (Author: MikeHart)
NEW: [TRANSCC] Added #GLFW_GCC_SRC_OPTS to compile more source files.   (Author: MikeHart)
NEW: [TRANSCC] Added #GLFW_GCC_VPATH_OPTS to add more paths to source files.   (Author: MikeHart)
NEW: [TRANSCC/Android] Added bundleRelease to create app bundle.   (Author: MikeHart)
NEW: [mojo/Android] Added new soundpool constructor to replace the depreciated one.   (Author: MikeHart)
NEW: [html5] Added #HTML5_CANVAS_ALPHA to enable the canvas' background alpha channel   (Author: Holzchopf)
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,042
Nothing much, but on its way to be a valuable tool... atm I am working on the internals before I slap on an UI.

1618759849800.png


This is the current change log for the next version, which I hope will be out in May to keep the 6 month schedule for official releases.

Code:
***** v2021-04-04 *****

FIX: [brl.requesters] Fixed compiling error on Linux.    (Author: MikeHart)
FIX: [brl.filesystem] Fixed CreateDir not being able to use cerberus://internal file paths.    (Author: MikeHart)
FIX: [docs] Corrected Latest new stuff section on the homepage.   (Author: MikeHart)
FIX: [docs/mojo.app] Typo correction.    (Author: Phil7)
FIX: [mojo2] Fixed Canvas.ReadPixels only reading the last framebuffer it was rendered to.    (Author: MikeHart)
FIX: [mojo/mojo2] Fixed Font.TextHeight returning the values without Glyph.yoffset.    (Author: MikeHart)
FIX: [mojo] Fixed mojo.colornames throwing a "blocks nested to deeply" error on MSVC.    (Author: MikeHart)
MOD: [mojo/mojo2] Changed DrawText to use TextHeight("") when being y-aligned.    (Author: MikeHart)
MOD: [GLFW/MSVC] Upgraded the solution to use MSVC 2019 and SDK 10.x.    (Author: MikeHart)
MOD: [agk/buildtarget] Added fixes for TGCs Android template.    (Author: MikeHart)
MOD: [CURL] Only copy Windows DLLs to the exe, when the brl.httprequest module is imported.    (Author: MikeHart)
MOD: [CURL] Updated to version 7.75.    (Author: MikeHart)
NEW: [mojo.input] Added KEY_ALT to the usable key codes.   (Author: MikeHart)
NEW: [TRANSCC] Added #GLFW_GCC_SRC_OPTS to compile more source files.   (Author: MikeHart)
NEW: [TRANSCC] Added #GLFW_GCC_VPATH_OPTS to add more paths to source files.   (Author: MikeHart)
NEW: [TRANSCC/Android] Added bundleRelease to create Android app bundle.   (Author: MikeHart)
NEW: [TRANSCC/GLFW] Copy dlls into the build folder (Takes care of the OpenAl dlls).   (Author: MikeHart)
NEW: [mojo/Android] Added new soundpool constructor to replace the depreciated one.   (Author: MikeHart)
NEW: [HTML5] Added #HTML5_CANVAS_ALPHA to enable the canvas' background alpha channel.   (Author: Holzchopf)
NEW: [GLFW/MSVC] Added the ability to create 32 and 64bit apps via #GLFW_GCC_MSIZE_WINNT and MSVC. Will create a new app config setting to cover GCC and MSVC later on.   (Author: MikeHart)
NEW: [brl.ini] Added a new Ini handler module, based on Martin Leidel's inital work.   (Martin, MikeHart)
NEW: [imgui] Added the module imgui module that wraps an intermediate GUI.    (Author: MikeHart)
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,042
As you have noticed, the last release was on 2021-05-16. The imgui module and the texture packer app didn't make it into the release.
That had several reasons, one me not being sure if OpenGLES based functionality was the way to go while Philipp was concentrating on the mojo2 conversion to sokol.

Philipp and I talked yesterday for a while over the phone. Even that our Sokol experiments are very promising, we are not convinced if it would be the way to go regarding bring Metal to CX. Mainly because it would need to change mojo2 in its shader part quite a bit. Maybe even loose some freedom we have. So we decided to put that part back into the drawer for at least 6 months. Then we will have a look if maybe (metal)Angle is in a better state and shape and easier to integrate to support OpenGLES on Metal. If we go the Sokol route, EVERY graphics part/module (mojo/mojo2/Vortex) would need to change. Needless to say, that is quite a huge task.

The second reason was and still is if a CX based UI isn't a better way to go. That would be running on all platforms, not only desktop.
And it would remove the dependency on the underlying graphics api/platform.

In general the next steps will be the restructured and enhanced documentation and the move to VSCode/VSCodium. Sadly the development of the 2 VSCode extensions that were created/started before came to a halt, so we have to take this onto ourselves. As Philipp has the hat on with these two (me just helping out if I have the knowledge for it), I will concentrate on the suggestions that have build up quite a bit in the last months/weeks/days. Not being a fan of these mobile platforms, it will be fun fun days. :confused:

I have closed the issues section on our GH repository as it was confusing people (were not sure where to post) and I think here everyone can see it and give their input if needed.

I am also on the edge of closing our Twitter and itch.io account. Imho Twitter like so many SM platforms became a pool of hate, fear and fake news spreading. Not towards our tool, but when you use a Social media platform, you are automatically exposed to a lot of garbage of opinions. And it effects my thinking about humans and our society badly. And not in a good way. I am already not on FB and IG anymore and I am also avoiding certain forums already.

The goal of the itch.io site was always to build up more visibility. But CX is drowned there between horror and fetish games and other garbage.
It certainly isn't a good place if you ask me. And another part that needs to be watched and taken care of. So this might go, not sure at the moment.

Sorry for the negative thoughts. I guess I need to restart my brain. Cya.
 

Holzchopf

Moderator
3rd Party Module Dev
Tutorial Author
Joined
Jul 31, 2017
Messages
493
Sadly the development of the 2 VSCode extensions that were created/started before came to a halt, so we have to take this onto ourselves. As Philipp has the hat on with these two (me just helping out if I have the knowledge for it), I will concentrate on the suggestions that have build up quite a bit in the last months/weeks/days. Not being a fan of these mobile platforms, it will be fun fun days. :confused:

....

Sorry for the negative thoughts. I guess I need to restart my brain. Cya.

Hm? You're not talking about the vscode extension I'm working on, right? Because that one hasn't come to a halt. Sure, there hasn't been an update recently (and also - t.b.h. - I didn't find much time to work on), but I'm still alive ;-) Or is there something going on I don't know about?
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,042
Hm? You're not talking about the vscode extension I'm working on, right? Because that one hasn't come to a halt. Sure, there hasn't been an update recently (and also - t.b.h. - I didn't find much time to work on), but I'm still alive ;-) Or is there something going on I don't know about?
Yes that was one. Last update on Github in October and your last statement on a twitter conversation was mentioning February.
Ok if you are still working on it, then we will not do anything and wait till it is ready.
 

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
715
There's so much pointless noise and hatred in the world..
..and it's certainly not easy when it comes to SM and humanity.

But to the point, Cerberus is such an amazing tool and it symbolises positive things!
It stands for reliability, not giving up. and it stands for all kinds of good change while keeping the good stuff.

What I like about it is that It's a tool that allows anyone to create high quality software on their own terms!

I also love how EXTENDIBLE it is .. it's a soft entrance into the "professional" industry if you so desire!
The only thing (except documentation of course) that Cerberus need is; better demos!
All old examples should go really.. what if we could collect a better collection together?

...Just let Cerberus speak for itself and let it show to people what it can do!

VSCode extensions - I'm *so* looking forward to use VSCode and VSCodium as the main IDE for Cerberus!

GUI - It doesn't have to be choice?
* Platform-specific
* Cerbeus-GUI
* Multiple GUI options..

------------------

GRAPHICS - I have to admit that as I just recently learned GLES2 & shaders and beacuse I really love using this technology and I do hope to have some time before a new change. But still we need change, if it just means converting and learning new things then I would say it's worth it.

Making Mojo2 in SOKOL or METAL ANGLE sounds like a good step, they sound fasionable and fresh.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,042
Here is the current list of changes for the next release which will be out soon, as Google forces us too. From August on new Apps have to target SDK level 30. What is left to do will be to make sure, some other requirements are ment. All this is already on Github.

Code:
***** v2021-07-11 *****

FIX: [docs] Added missing entries to the examples pages.    (Author: MikeHart)
MOD: [docs] Modified the Android target page to reflect the new requirements.    (Author: MikeHart)
FIX: [GLFW] Fixing Clipboard not dealing with special chars correctly.    (Author: Phil7)
FIX: [HTML5] Fixed still visible CLEAR CONSOLE button when console was hidden.    (Author: Grant)
MOD: [CUSTOM target] Fixed using more than 1 variable in a line.    (Author: MikeHart)
MOD: [ANDROID] Removed App Compat Library, hence smaller app sizes.    (Author: Grant)
MOD: [ANDROID] Replace Android JNI with pure Java    (Author: Grant)
MOD: [ANDROID] Permissions for INTERNET and ACCESS_NETWORK_STATE are only added when some modules are imported that need it.   (Author: MikeHart)
MOD: [HTML5] Removed code that ignored non standard mapped joysticks.    (Author: Grant)
MOD: [ANDROID] Changed target sdk version to 30 and minimum sdk version to 18 by Googles requirements.    (Author: Phil7)
MOD: [ANDROID] Moved gradle distribution to 6.5 and gradle version to 4.1.0  to remove the requirement to install a java JDK, but unsing the one that comes with Android Studio instead.    (Author: Phil7)
NEW: [CUSTOM target] Added getenv and setenv to get/set environment variables.    (Author: MikeHart)
NEW: [CUSTOM target] Added set to set custom variables.    (Author: MikeHart)
NEW: [CUSTOM target] Added if and endif for conditional script execution (EQ/NE/CS/NS).    (Author: MikeHart)
NEW: [CUSTOM target] Added %host% to return the host the script is running on.    (Author: MikeHart)
NEW: [ANDROID] Added #ANDROID_MULTISAMPLING_ENABLED to activate up to 4x Multisampling.    (Author: Grant)
NEW: [ANDROID] Added SetClipboard and GetClipboard.    (Author: Grant)
NEW: [ANDROID] Added #ANDROID_ACCELEROMETER_ENABLED so you can turn off the ACCELEROMETER in Android apps.    (Author: MikeHart)
NEW: [HTML5] Added #HTML5_CANVAS_ANTIALIAS to de-/activate canvas antialiasing.    (Author: Grant)
NEW: [HTML5] Added Hi-DPI support.    (Author: Grant)
NEW: [HTML5] Added CountJoysticks() support.    (Author: Grant)
NEW: [examples/mojo2] Added countJoysticksDemo.cxs example.    (Author: Grant)
NEW: [mojo.audio] Added CHANNELSTATE_STOPPED, CHANNELSTATE_PLAYING, CHANNELSTATE_PAUSED and CHANNELSTATE_UNKNOWN constants.    (Author: MikeHart)
 
Top Bottom