• Dear Cerberus X User!

    As we prepare to transition the forum ownership from Mike to Phil (TripleHead GmbH), we need your explicit consent to transfer your user data in accordance with our amended Terms and Rules in order to be compliant with data protection laws.

    Important: If you accept the amended Terms and Rules, you agree to the transfer of your user data to the future forum owner!

    Please read the new Terms and Rules below, check the box to agree, and click "Accept" to continue enjoying your Cerberus X Forum experience. The deadline for consent is April 5, 2024.

    Do not accept the amended Terms and Rules if you do not wish your personal data to be transferred to the future forum owner!

    Accepting ensures:

    - Continued access to your account with a short break for the actual transfer.

    - Retention of your data under the same terms.

    Without consent:

    - You don't have further access to your forum user account.

    - Your account and personal data will be deleted after April 5, 2024.

    - Public posts remain, but usernames indicating real identity will be anonymized. If you disagree with a fictitious name you have the option to contact us so we can find a name that is acceptable to you.

    We hope to keep you in our community and see you on the forum soon!

    All the best

    Your Cerberus X Team

DevLog Team DevLog MikeHart - Update 2022/03/28

Status
Not open for further replies.
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.
 
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 :/
 
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.
 
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?
 
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: 175
Last edited:
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)
 
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)
 
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.
 
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?
 
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.
 
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.
 
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)
 
I have uploaded a new brl.events module to the develop branch in our Github repository.

This is the current list of changes for the next release:

Code:
***** v2021-09-12 *****

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 7.0.2 and gradle version to 4.2.0  to remove the requirement to install a java JDK, but unsing the one that comes with Android Studio instead. Also to make it compatible with Macos again.    (Author: Phil7)
MOD: [ANDROID/admob] Moved to google_play_services 20.2.0.    (Author: Phil7 / MikeHart)
MOD: [TRANSCC] Set SetEnv JAVA_HOME with the JDK_PATH on Macos.    (Author: Phil7)
MOD: [TRANSCC] Handle multiple ANDROID_LIBRARY_REFERENCE_n entries on Android.    (Author: MikeHart)
NEW: [ANDROID/admob] Added #ADMOB_ANDROID_ADS_APPID to set the appid for admob ads.   (Author: MikeHart)
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: [ANDROID] Added #ANDROID_LOGCAT_OPTION="[Cerberus]:I *:E" so you can customize the LOGCAT output at build&run time.    (Author: MikeHart)
NEW: [HTML5] Added #HTML5_CANVAS_ANTIALIAS to de-/activate canvas antialiasing.    (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)
NEW: [brl.xml] Added a XML module.    (Author: MikeHart)
NEW: [brl.vec2d] Added a 2d vector module.    (Author: MikeHart)
NEW: [mojo2] Added DrawList.DrawRoundedRect:Void(x:Float, y:Float, width:Float, height:Float, radius:Float=10, material:Material=Null).    (Author: MikeHart)
NEW: [brl.events] Added an event handling module.    (Author: MikeHart)


KNOWN ISSUES:
- Window dragging in 32 bit Release mode still crashes, need to figure out why that is.
- GLFW_APP_ICON doesn't work with OSX and Linux.
- Because of changes in the Google billing SDK, new apps using brl.cerberusstore in Android can not be submitted atm.
 
Oh boy, can of worms. I installed MacOs Monterey over the last days. Good news. CX runs and compiles. Then I try to start the Admob conversion to SDK 8 of Google and there I needed to teach Trans to accept xcframeworks. That is done. Tomorrow I will continue to work on the Admob stuff for IOS. During some initial IOS tests I saw that CX has a lot of depreciated API calls. So that is why I opened a can of worms :D
 
Good morning folks,
The last days I have released the latest release for Windows and Linux. The problem with MacOS is Code signing and maybe notarizing all the executables inside the distribution. MacOS Monterey seems to be super picky about it now.
So i will try to tackle this tonight and I hopefully it works on a 3rd party machine which I happen to have access to it. I am trying to avoid creating a developer account for it. 😂

Next I will be working on the admob stuff for iOS and the iAp stuff for Android. Still didn’t got my head around it but I have vacation this week and some time for it.

I have removed the use_Monkeystate config flag as it was pointed out to me that there coukd be a legal problem with one of my employers.

Which is really a pickle. I got permission to work on cx but have to be careful not to work on stuff that they need as well and release it without written permission. Even in my free time.
 
Status
Not open for further replies.
Back
Top Bottom