nateisstalling / basic4glj Goto Github PK
View Code? Open in Web Editor NEWBasic4GL for Java - a BASIC language compiler and IDE
License: BSD 3-Clause "New" or "Revised" License
Basic4GL for Java - a BASIC language compiler and IDE
License: BSD 3-Clause "New" or "Revised" License
Include signed JARs in releases
Need to evaluate what documentation still applies for Java/Mac since some functions may not be supported
Evaluate BGFX as alternative for LWJGL
https://bkaradzic.github.io/bgfx/bgfx.html
Bad port of de-constructors in original C++ source; unclear scope of issue and if appropriate to refactor as teardown method or simply remove.
Approach depends on usage around OpenGL memory allocations
Fix crashing sample program
Support standard shortcut keys for text editing on Mac - update ctrl modifier usage to command, etc.
Cleanup lint warnings in function library classes or suppress them as needed.
Verify changes do not cause a regression with Export JAR functions - I'm unsure if there was a gotcha with class path or reflection related to current export jar implementation that relies on inner classes not being static...
Arg and ArgCount Functions in the Standard Library do not work since the program arguments array is never initialized with the library.
Exported JAR is not usable - need to evaluate if an issue with Mac support, changing build requirements to Java 8, or an issue with new libraries not being included properly.
Need to evaluate if glCallLists can be implemented to support Nehe17 sample program - otherwise verify glCallLists support gap is documented in Compatibility Notes.
Support build tools from command line
Interface currently defaults "sandbox mode" to true - should prevent destructive operations (ie: Delete), but needed for full Standard Library parity
Improve installation process with OpenJDK
Reduce variable scope to follow best practices and avoid issues with improper access to variables
Previous versions of Basic4GL supported setting command line arguments from the IDE:
To set the command line arguments that a program will see when it is running inside the Basic4GL IDE, click Program->Arguments.
Enter each argument on a separate line.
Fix code style issues from porting C++ code
Sample programs Starfield4, Starfield5, and Starfield6 showing no output.
Presumably an issue with the configured OpenGL defaults - potentially some combination of the default viewport and retina displays.
Setting the vec3 on line 12 of the Starfield4 sample to stars#(i) = vec3 (0, 0 - 0, -i)
displays a single star texture in the center of the screen - unable to personally confirm the behavior of the same change in the Windows version since working on Mac.
Create layout for window when no tabs are open
Consider: labels with new program ctrl+n, open ctrl+o, etc
Need to determine which libraries need to be updated to support Apple Silicon - help is needed since I only have a Mac with Intel to test with.
FPS counter shows 0 for sample program
Evaluate changes made related to TODO note posted before setting the project down for 2 years..
Note to self: messed with swap buffers in the post execute at 2am
Dec 9, 2020 at 2:40 AM
Add a "Getting started" guide and step-by-step examples
Support find/replace in the text editor
Currently using a snapshot build, LWJGL 3.0.0 SNAPSHOT build 17.
Signed native libraries may be needed for Mac support.
Copied from old TODO board, need to re-evaluate:
glGenerateMipmap [was/is] causing black polygons, but needed for sprites
https://www.khronos.org/opengl/wiki/Common_Mistakes
inkey$ ()
does not capture enter key input - affecting the MD2Viewer.gb sample program.
Affected code:
a$ = inkey$ ()
if a$ = chr$(13) then
gosub AnimString
a$ = ""
endif
Fix crashing sample program
Running the latest build on the current version of Windows.
When running Basic4GLj.bat
from a Command-Prompt, I get the following error...
The input line is too long.
The syntax of the command is incorrect.
In Basic4GLj.bat
the following line contains too many characters...
set CLASSPATH=%APP_HOME%\lib\app.jar;%APP_HOME%\lib\RSyntaxTextArea.jar;%APP_HOME%\lib\library-1.0-SNAPSHOT.jar;%APP_HOME%\lib\lwjgl-javadoc.jar;%APP_HOME%\lib\lwjgl-natives-macos-arm64.jar;%APP_HOME%\lib\lwjgl-openal-javadoc.jar;%APP_HOME%\lib\lwjgl-natives-windows-x86.jar;%APP_HOME%\lib\lwjgl-stb-natives-windows-arm64.jar;%APP_HOME%\lib\lwjgl-glfw-natives-macos-arm64.jar;%APP_HOME%\lib\lwjgl-glfw-natives-windows-x86.jar;%APP_HOME%\lib\lwjgl-openal-natives-linux-arm64.jar;%APP_HOME%\lib\lwjgl-openal-natives-macos.jar;%APP_HOME%\lib\lwjgl-opengl-javadoc.jar;%APP_HOME%\lib\lwjgl-assimp-natives-macos-arm64.jar;%APP_HOME%\lib\lwjgl-assimp-natives-windows-x86.jar;%APP_HOME%\lib\lwjgl-glfw-natives-linux.jar;%APP_HOME%\lib\lwjgl-opengl-natives-windows.jar;%APP_HOME%\lib\lwjgl-stb-natives-windows.jar;%APP_HOME%\lib\lwjgl-openal-natives-windows-arm64.jar;%APP_HOME%\lib\lwjgl-stb.jar;%APP_HOME%\lib\lwjgl-stb-natives-linux.jar;%APP_HOME%\lib\lwjgl-glfw-natives-windows.jar;%APP_HOME%\lib\lwjgl-natives-linux-arm64.jar;%APP_HOME%\lib\lwjgl-glfw.jar;%APP_HOME%\lib\lwjgl-opengl-natives-linux-arm32.jar;%APP_HOME%\lib\lwjgl-stb-natives-linux-arm32.jar;%APP_HOME%\lib\lwjgl-assimp-natives-linux.jar;%APP_HOME%\lib\lwjgl-natives-macos.jar;%APP_HOME%\lib\lwjgl-openal-natives-macos-arm64.jar;%APP_HOME%\lib\lwjgl-glfw-natives-linux-arm64.jar;%APP_HOME%\lib\lwjgl-openal-natives-windows-x86.jar;%APP_HOME%\lib\lwjgl-assimp-javadoc.jar;%APP_HOME%\lib\lwjgl-glfw-javadoc.jar;%APP_HOME%\lib\lwjgl.jar;%APP_HOME%\lib\CodecIBXM.jar;%APP_HOME%\lib\lwjgl-assimp-natives-linux-arm64.jar;%APP_HOME%\lib\lwjgl-opengl-natives-macos.jar;%APP_HOME%\lib\lwjgl-opengl-natives-windows-arm64.jar;%APP_HOME%\lib\lwjgl-assimp-natives-windows-arm64.jar;%APP_HOME%\lib\lwjgl-opengl-natives-macos-arm64.jar;%APP_HOME%\lib\lwjgl-opengl-natives-windows-x86.jar;%APP_HOME%\lib\CodecWav.jar;%APP_HOME%\lib\lwjgl-assimp-natives-macos.jar;%APP_HOME%\lib\lwjgl-openal-natives-linux-arm32.jar;%APP_HOME%\lib\lwjgl-natives-linux.jar;%APP_HOME%\lib\lwjgl-stb-natives-windows-x86.jar;%APP_HOME%\lib\lwjgl-stb-natives-macos-arm64.jar;%APP_HOME%\lib\lwjgl-stb-javadoc.jar;%APP_HOME%\lib\lwjgl-assimp.jar;%APP_HOME%\lib\lwjgl-glfw-natives-windows-arm64.jar;%APP_HOME%\lib\lwjgl-opengl-natives-linux.jar;%APP_HOME%\lib\lwjgl-openal.jar;%APP_HOME%\lib\CodecJOrbis.jar;%APP_HOME%\lib\lwjgl-natives-linux-arm32.jar;%APP_HOME%\lib\lwjgl-opengl-natives-linux-arm64.jar;%APP_HOME%\lib\lwjgl-natives-windows.jar;%APP_HOME%\lib\lwjgl-stb-natives-linux-arm64.jar;%APP_HOME%\lib\lwjgl-openal-natives-linux.jar;%APP_HOME%\lib\lwjgl-glfw-natives-linux-arm32.jar;%APP_HOME%\lib\lwjgl-openal-natives-windows.jar;%APP_HOME%\lib\SoundSystem.jar;%APP_HOME%\lib\lwjgl-assimp-natives-windows.jar;%APP_HOME%\lib\lwjgl-opengl.jar;%APP_HOME%\lib\lwjgl-assimp-natives-linux-arm32.jar;%APP_HOME%\lib\lwjgl-glfw-natives-macos.jar;%APP_HOME%\lib\lwjgl-natives-windows-arm64.jar;%APP_HOME%\lib\lwjgl-stb-natives-macos.jar;%APP_HOME%\lib\debugServer-1.0-SNAPSHOT.jar;%APP_HOME%\lib\compiler.jar;%APP_HOME%\lib\runtime-1.0-SNAPSHOT.jar;%APP_HOME%\lib\debugProtocol-1.0-SNAPSHOT.jar;%APP_HOME%\lib\flatlaf-extras-3.0.jar;%APP_HOME%\lib\flatlaf-3.0.jar;%APP_HOME%\lib\gson-2.10.jar;%APP_HOME%\lib\javax-websocket-server-impl-9.4.49.v20220914.jar;%APP_HOME%\lib\javax.websocket-api-1.0.jar;%APP_HOME%\lib\javax-websocket-client-impl-9.4.49.v20220914.jar;%APP_HOME%\lib\svgSalamander-1.1.3.jar;%APP_HOME%\lib\websocket-server-9.4.49.v20220914.jar;%APP_HOME%\lib\websocket-client-9.4.49.v20220914.jar;%APP_HOME%\lib\javax.websocket-client-api-1.0.jar;%APP_HOME%\lib\jetty-annotations-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-plus-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-webapp-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-servlet-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-security-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-server-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-client-9.4.49.v20220914.jar;%APP_HOME%\lib\websocket-common-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-http-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-io-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-util-ajax-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-xml-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-jndi-9.4.49.v20220914.jar;%APP_HOME%\lib\jetty-util-9.4.49.v20220914.jar;%APP_HOME%\lib\websocket-servlet-9.4.49.v20220914.jar;%APP_HOME%\lib\javax.servlet-api-3.1.0.jar;%APP_HOME%\lib\websocket-api-9.4.49.v20220914.jar;%APP_HOME%\lib\javax.annotation-api-1.3.2.jar;%APP_HOME%\lib\asm-commons-9.3.jar;%APP_HOME%\lib\asm-analysis-9.3.jar;%APP_HOME%\lib\asm-tree-9.3.jar;%APP_HOME%\lib\asm-9.3.jar
I'm assuming all those files on the Classpath are located in the lib folder so a Wildcard can be used and I can then get the IDE to appear on the screen...
set CLASSPATH=%APP_HOME%\lib\*
Unable to run MD2Viewer.gb sample programs due to lack of .pcx texture support
Evaluate EmbeddedFileLoader and FileLoader implementations for regressions; uncertain if working on Mac.
Fix JAR Export first.
Improve websocket debugger interface to help integration with editors that support DAP Specification
https://microsoft.github.io/debug-adapter-protocol/specification
FunctionSpecifications currently only support default constructors or the parent Library as a parameter as of #23.
Consider adding support for dependency injection for Functions to allow more flexible code organization for Library authors.
Consider C#'s IServiceProvider pattern to register Library dependencies.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.