What do you wish for the next step regarding development of CX?

Pierrou

Active member
Joined
Jul 6, 2017
Messages
204
@Pierrou what else do you need regarding clipboard what we already have?
Please explain solution explorer. Never heard about it.
Oh yes you mean GetClipboard and SetClipboard. Indeed they are everything I'm going to need soon sorry forgot/didn't know about them.
Solution Explorer looks like this in JungleIDE :
1589452650522.png
 

dawlane

Well-known member
CX Code Contributor
Joined
Jun 21, 2017
Messages
814
Well looks like geany and Codelite will be off the menu. Building these would be way too complicated for use with Cerberus.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,035
Well looks like geany and Codelite will be off the menu. Building these would be way too complicated for use with Cerberus.
Cool, but we have different plans anyway. More about that later this year.
 

Phil7

Administrator
CX Code Contributor
3rd Party Tool Dev
Joined
Jun 26, 2017
Messages
602
in order to load things without hanging (e.g. so I can have a smooth loading animation),
What kind of animation are you going for? Something like a progressbar or do you want to keep a let's say 30 fps animation running while loading?
If yield is something like it is in Python I guess this is based on first class functions i.e. functions as variables.
 

zuibaf

New member
Joined
Sep 29, 2017
Messages
54
The transs compiler could have some way of returning type information, for example, the mx2cc compiler, from monkey2, has a "geninfo" flag that you pass to analyze a file and it returns a file with type information, after parsing . It returns a file, in json format.
I believe that the compiler has some way of passing this information on, it probably makes it easier to create plugins for other editors, for example, VS Code, Atom.
For example, given the file in monkey2, it generates this.

Code:
using std..

Function Main:Void()
    Print ("This is a test")
End

Code:
{
    "endpos":"6:3",
    "flags":0,
    "ident":"fbteste2_fbteste2",
    "kind":"file",
    "members":[{
        "endpos":"6:3",
        "flags":1,
        "ident":"Main",
        "kind":"function",
        "srcpos":"4:0",
        "stmts":[],
        "type":{
            "endpos":"4:20",
            "kind":"functype",
            "params":[],
            "retType":{
                "endpos":"4:18",
                "ident":"void",
                "kind":"ident",
                "srcpos":"4:14"
            },
            "srcpos":"4:14"
        }
    }],
    "namespace":"default",
    "srcpos":"1:0",
    "usings":["std.."]
}
I've been analyzing the code on ted2go, and basically, it uses this information to generate code completion.
 

zuibaf

New member
Joined
Sep 29, 2017
Messages
54
This might be a bit of a tall order, but a "yield" function would help make my loading sections a lot cleaner.

Right now in order to load things without hanging (e.g. so I can have a smooth loading animation), the only way I've figured out how to do it is with something like:
Code:
Function UpdateLoading:Void()
  Select loadingStage
    Case 0
      'load first few assets
    Case 1
      'load next few assets
    Case 2
       ....
  End
  loadingStage += 1
End

It would be great to just do something like:
Code:
Function UpdateLoading:Void()
  'load first few assets
  Yield
  'load next few assets
  Yield
  For local i% = 0 to X
    'load asset i
    Yield
  Next
End

It would particularly help for procedural generation where there's no clean way to return control to the system and then pick up where it left off.
This concept of yield is similar the keyword 'yield' on C#:
 

wick

Member
3rd Party Module Dev
Tutorial Author
Patreon Bronze
Joined
Jul 17, 2017
Messages
76
keep a let's say 30 fps animation running while loading?

Exactly:
240_loading_screen.gif


The hangups are on steps that I can't break up with the case statement.

Obviously, not a super-high priority — almost more for my own organization of code then how it presents to the user. Just been something that's been on the back of my mind as a wishlist item for a while. :)
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,035
I've been analyzing the code on ted2go, and basically, it uses this information to generate code completion.
I am surprised that they didn't use the tool to create the documentation for this kind of info. Well without a documentation, they would not be able to do so. But then again, M2 uses an approach to build all the modules first. Something that CX doesn't.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,035
The hangups are on steps that I can't break up with the case statement.

The OnLoading method comes to my mind here, but it is only available in mojo1. You do asynchronous loading, do you?
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,035
Thanks to all for your input, it is most helpful and Philipp and I have now some work to do. :)
 

rtokyolivier

New member
Joined
Feb 5, 2020
Messages
9
Hello, for me, I'd like to have possibility to develop GUI app with CX (iOS, Android, Java...). Also the 3D module (but for now, for us not professionnal developper, even 50$ annual fee is to high :( ).
 

rtokyolivier

New member
Joined
Feb 5, 2020
Messages
9
Did you ment the native guis or any gui?
Java? A Java target like the standard C++ target?
Yes, I mean native gui. It'll be good to have a possibility to built apps with CX not only games. And for the Java target, as Java is cross plateform, instead of dealing with native gui (For Windows, linux, etc), why not use JFX for eg. So to be compiled with (Open)JDK.
 

Arantor

New member
Joined
May 27, 2020
Messages
19
Most Java apps I've seen don't bother with the system APIs either, because the work to do it properly cross platform is prohibitively expensive in terms of development; honestly this is why a lot of folks are just going for something like Node + Electron because the hard work of platform agnostic GUI work has been broken right down for you.
 

GW_

New member
Joined
Jul 5, 2017
Messages
2
IMO Cerberus need to re-enable the XNA target with Monogame. You get all the platforms for free. (iOS, Android, MacOS, Linux, all Windows platforms, PS4, PSVita, Xbox One, and Switch ) and the targets are updated my Microsoft. Also, the XNA target is the second fastest build target and often the fastest runtime. I posted once before about getting it working on android here:
 

Scaremonger

New member
Joined
Dec 6, 2017
Messages
5
May never happen. Not all targets support pointers.

That is a good reason to avoid them, however there are situations that pointers are used simply to reference a variable in a different way. Take the situation where you need to access the 4 bytes in an INT. With pointers you could create a variable that points to the individual byte, but without that functionality, you have to use this:
code_language.cerberus:
local col:int = $2d4d5f
Local red:Int = (col & $FF0000) Shr 16

Treating integers as an arrays of bytes would help, for example:
Code:
local col:int = $2d4d5f
local red:int = col[2]

The thing I miss most about pointers are Callbacks (or function variables). It was one of the first stumbling blocks I encountered when I started using Cerberus as I had got to rely upon them in BlitzMax, Javascript/Node and several other languages!

In Blitzmax they were created without using pointers in a similar way to other languages:
Code:
Function my_callback:String( name:String )
    Return name + " was called!"
End Function 

Local callback:String( name:String ) = my_callback
Print callback( "HELLO" )
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,035
Yip, one day I will try to tackle pointers. But first a new render backend. And Android Bundles.
 

zuibaf

New member
Joined
Sep 29, 2017
Messages
54
Although VSCode is interesting to use with an almost ide, I find the solution of the NetBeans platform or eclipse more interesting, solutions that have existed for a long time. You can create a plugin that supports Cerberus to be used in NetBeans or Eclipse, or you can create an ide using the NetBeans platform or the Eclipse platform.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
3,035
You can create a plugin that supports Cerberus to be used in NetBeans or Eclipse, or you can create an ide using the NetBeans platform or the Eclipse platform.
We need an IDE that we can ship with CX and has the functionality without installing this and that.
Or we go completely the source code only way and only provide install instructions. I could see that the later one is not favorable for many users.
 
Top Bottom