dartgl 0.1.2 dartgl: ^0.1.2 copied to clipboard
You can easily call native OpenGL functions from Dart. OpenGL 4.5 core profile and ARB extension interfaces are supported.
DartGL #
It is a native extension for Dart to use OpenGL in desktop applications. On www.dartlang.org they call it "command-line or server applications". However, you can definitely create GUI application and use OpenGL too.
Support matrix #
- OpenGL: 3.3-4.5 core profile
- OS: Linux 64-bit and Windows 32|64-bit
- Dart: any
How to install #
- Add to pubspec.yaml
dependencis:
dartgl:
- Run
pub get
How to use #
- Add to your Dart file
import 'package:dartgl/dartgl.dart';
- Create OpenGL context (see Notes)
- Just use OpenGL functions and constants
var vertexShader = glCreateShader(GL_VERTEX_SHADER);
var fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
...
var program = glCreateProgram();
glAttachShader(program, vertexShader);
glAttachShader(program, fragmentShader);
glBindAttribLocation(program, 0, "in_Position");
glBindAttribLocation(program, 1, "in_Color");
glBindAttribLocation(program, 2, "in_Texture");
glLinkProgram(program);
location = glGetUniformLocation(program, "in_Time");
var arrays = new Uint32List(1);
glGenVertexArrays(1, arrays);
...
while (...){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
...
/.
}
Notes #
For testing purpose, I created native extension for a tiny part of SDL 2.0 to create a window, create OpenGL context and manage window events. You can use your own way.
Examples #
In order to run basic examples from test directory, SDL should be installed.
- Linux
sudo apt-get install libsdl2-2.0
- Windows
Download and add to PATH
To-Do #
- Improve performance
- Improve tests
- MacOS X support
- OpenGL ES support