Git Product home page Git Product logo

vgl's Introduction

go-glx/vgl

VGL is vulkan graphics library

NOT READY FOR ANY REAL USAGE YET (IN DEV)


Its primitive 2D-only graphics library for drawing simple staff like circles, boxes, lines, polygons and textures.

Also support custom SPIR-V shaders

This library use Vulkan for sending GPU commands.

Development

Currently package configured for development in go-work namespace (this will not change until 1.0 release)

  1. Install vgl, glx and other packages from go.mod into /home/../go/src/github.com/go-glx
  2. Add go.work file
go 1.20

use (
	vgl
	vgl/arch/glfw
	vgl/example
	glx
)
  1. Run with CG CGO_ENABLED=1 env variable (you need install gcc compiler)

Requirements in host (for lib development)

  • gcc
  • g++
  • deps for chosen window render arch:

Usage

This library can be used in high performance and rich graphic applications. (2D Game engines)

3D not supported right now

Arch

vgl -> driver -> GPU
                  |
                  WM

Available drivers:

  • vulkan

Available WM:

  • glfw
  • SDL (todo)

Available GPUs:

  • any discrete/integrated/dual(optimus) GPU with shader v1+ support

Current state of dev

Basic triangles rendering: example

  • shaders rendering
  • instancing, optimizations
  • buildIn shaders libs: point(+), line(+), circle, triangle(+), rect(+), polygon
  • culling in local space
  • move arch package to separate go module (go.mod deps split)
  • blend modes
  • 2d textures
  • bunnies stress test
  • polish
  • tests
    • integrated GPU
    • PRESENT_MODE_MAILBOX_KHR (on integrated GPU)
    • close all todos
  • documentation
  • release v1.0

vgl's People

Contributors

fe3dback avatar

Stargazers

Alexey Gromov avatar RedBull avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.