UNofficial Opengl SDK

Related tags

SDK uno-sdk
Overview

unofficial-opengl-SDK

Build Status license Release Size Github All Releases Awesome Kotlin Badge

How to retrieve it:

You can find all the instructions by mary

uno

This is kind of a small suite, born and shaped around GL, it includes the gln dependencies, such as unsigned support, glm and gli. Its main usage is basically as wrapper for the lwjgl glfw binding.

A kind of a gln for glfw. So, code more compact, type-safe, clear and intuitive. You can have up and running a whole gl clear example in just a couple of lines:

glfw.init("3.3")

val window = GlfwWindow(1280, 720, "OpenGL example").apply {
    init()
}
        
glClearColor(1f, 0f, 0f, 0f)

window.loop {
    glClear(GL_COLOR_BUFFER_BIT)
}

One cool feature is that it supports multiple listeners of the same type, like CharCallback:

var charCallback: CharCallbackT? = null
   get() = charCallbacks.getOrfirst(defaultKey)
   set(value) {
       charCallbacks[defaultKey] = value
       field = value
   }
val charCallbacks = sortedMapOf<String, CharCallbackT>()
val nCharCallback = GLFWCharCallbackI { _, codePoint -> charCallbacks.values.forEach { it(codePoint) } }

nCharCallback where n stays for native is the only and real callback

charCallback is just a comfortable interface to automatically set/get a single callback

charCallbacks is the SortedMap containing all the current callbacks

I've been chosen that so they can be easier ordered, the default callback has always this key:

val defaultKey = "0 - default"

I actually asked for this multi-callback in the native glfw, but in the meanwhile we can already use it. And this is also faster because it's all on the jvm!

Plus some other small utils like:

  • methods for allocating very easily many different type of buffers from a lot of different data type, such as different arrays and so on
  • an cap class for a deep and complete resume about a machine opengl capabilities
  • matrixStack for glm
  • glsl utils (to refresh)
  • an experimental kotlin stlib on intBuffers. So that you can for example textureName.forEach(::glDestroyTexture)
  • mousePole, an util for camera management
  • and attempt to port stb completely on jvm (unfinished)
  • timer util

And lately it also includes a counterpart of gln for vulkan, vkk, plus an util for making short-live allocations easy and free, kool.

Don't hesitate to contribute to the project by submitting issues or pull requests for bugs and features. Any feedback is welcome at [email protected].

Credits:

Comments
  • Improve API clarity

    Improve API clarity

    Renamed properties so they don't sound like actions, renamed methods so they sound like actions, and converted callback properties to methods to enable proper overloading.

    opened by pakdev 12
  • Goals of the project [Question]

    Goals of the project [Question]

    I'm curious about the goals of the project, more about if in the future it will support other than JVM or at least if its planned.

    I know that right now Kotlin native its not worth it, so if later on the project could migrate in some way to support both JVM and Native.

    Btw according to their blog Kotlin 1.2 will support multi-platform projects.

    Regards

    opened by norman784 3
  • [Request] Improve comparisons for MouseButton

    [Request] Improve comparisons for MouseButton

    The provided MouseButton enum is very useful, however has some problems.

    Multiple mouse buttons are defined for the same underlying id (e.g. 1 and LEFT both have the same id of 0).

    This means the following expression will evaluate to false: MouseButton.of(0) == MouseButton.LEFT.

    Potential solution: Remove enum types 1, 2, 3, LAST. This would break backwards compatibility.

    Perhaps there is another solution that doesnt break backwards compatibility?

    Sadly its not possible to override Enum.equals which would probably be the best solution.

    opened by x4e 1
  • Example project setup and showcase of features

    Example project setup and showcase of features

    Hello,

    I tried to test this SDK with Intellij IDEA community edition and Gradle, but I could not get it to run. I tried adding Gradle dependencies such as glm, jogl, and jogamp with no luck. The example given in the Readme was unable to import the gl calls and trying to open just the glfw window crashed with an error about glm library and classpaths.

    It would be good to have an example project or tutorial clarifying what are the required steps and dependencies needed to get this running and to showcase why this SDK is worth using.

    opened by kaphula 9
  • Dependency and Release rework

    Dependency and Release rework

    Right now the inter project dependencies of kotlin-graphics look like this: dependencies_current I think it would be better if we change it to something like this: Dependencies_goal That way it's much easier to pull updates from let's say kool into gln. Instead of pushing an update to first kool, then glm, gli and then being able to use it in gln.

    Together with this, we should start to only depend on either SNAPSHOT builds or actual releases, with releases only depending on release versions. That way we get a far more stable and reproducible build environment. I'm not 100% sure how well jitpack and gradle work with SNAPSHOTs, but I think it's worth trying. I will start creating separate branches where I try the new dependency scheme. We can then periodically merge the current changes into there to ensure that everything works and decide at a later point if we want to switch completely or leave it as it is right now.

    This issue is meant to be here for tracking the progress and issues with this change.


    This will also implement the changes for kotlin-graphics/assimp#22 and might let us go back to a stable lwjgl relases (kotlin-graphics/assimp#21) for all projects except vkk which uses experimental features. @elect86 Do you know exactly why we switched to lwjgl-3.2.2-SNAPSHOT?

    opened by Wasabi375 1
Releases(v0.7.9)
Owner
Friendly community providing JVM counterpart of open source tools for real time 3d graphic. "Take care of your tools and they will take care of you." (cit)
null
Frogo SDK - SDK Core for Easy Development

SDK for anything your problem to make easier developing android apps

Frogobox 10 Dec 15, 2022
HubSpot Kotlin SDK 🧺 Implementation of HubSpot API for Java/Kotlin in tiny SDK

HubSpot Kotlin SDK ?? Implementation of HubSpot API for Java/Kotlin in tiny SDK

BOOM 3 Oct 27, 2022
AWS SDK for Android. For more information, see our web site:

AWS SDK for Android For new projects, we recommend interacting with AWS using the Amplify Framework. The AWS SDK for Android is a collection of low-le

AWS Amplify 976 Dec 29, 2022
Countly Product Analytics Android SDK

Countly Android SDK We're hiring: Countly is looking for Android SDK developers, full stack devs, devops and growth hackers (remote work). Click this

Countly Team 648 Dec 23, 2022
Android Real Time Chat & Messaging SDK

Android Chat SDK Overview Applozic brings real-time engagement with chat, video, and voice to your web, mobile, and conversational apps. We power emer

Applozic 659 May 14, 2022
Evernote SDK for Android

Evernote SDK for Android version 2.0.0-RC4 Evernote API version 1.25 Overview This SDK wraps the Evernote Cloud API and provides OAuth authentication

Evernote 424 Dec 9, 2022
Air Native Extension (iOS and Android) for the Facebook mobile SDK

Air Native Extension for Facebook (iOS + Android) This is an AIR Native Extension for the Facebook SDK on iOS and Android. It has been developed by Fr

Freshplanet 219 Nov 25, 2022
Android Chat SDK built on Firebase

Chat21 is the core of the open source live chat platform Tiledesk.com. Chat21 SDK Documentation Features With Chat21 Android SDK you can: Send a direc

Chat21 235 Dec 2, 2022
Liquid SDK (Android)

Liquid Android SDK Quick Start to Liquid SDK for Android This document is just a quick start introduction to Liquid SDK for Android. We recommend you

Liquid 17 Nov 12, 2021
AWS SDK for Android. For more information, see our web site:

AWS SDK for Android For new projects, we recommend interacting with AWS using the Amplify Framework. The AWS SDK for Android is a collection of low-le

AWS Amplify 975 Dec 24, 2022
新浪微博 Android SDK

ReadMe 公告: 鉴于线上服务器出现问题,推荐下载本地aar后上传到自己公司的服务器,保证后续服务稳定, 我们也将尽快重新提供一个稳定的地址供大家使用。 新包地址:https://github.com/sinaweibosdk/weibo_android_sdk/tree/master/2019

SinaWeiboSDK 1.8k Dec 30, 2022
Free forever Marketing SDK with a dashboard for in-app SplashScreen banners with built-in analytics

AdaptivePlus Android SDK AdaptivePlus is the control center for marketing campaigns in mobile applications Requirements minSdkVersion 16 Examples prov

Adaptive.Plus 16 Dec 14, 2021
Official Appwrite Android SDK 💚 🤖

Appwrite Android SDK This SDK is compatible with Appwrite server version 0.8.x. For older versions, please check previous releases. Appwrite is an ope

Appwrite 62 Dec 18, 2022
This App is sending Face capture data over network, built around the latest Android Arcore SDK.

AndroidArcoreFacesStreaming From any Android phone ArCore compatible, using this app will send over TCP 5680 bytes messages: The first 5616 bytes is a

Maxime Dupart 30 Nov 16, 2022
Its measurement app made using kotlin with sceneform sdk by google

ARCORE MEASUREMENT This app is build using sceneform sdk for android using kotlin language It helps you measure the distance between multiple points i

Kashif Mehmood 39 Dec 9, 2022
A Notion SDK for Any JVM Language

Notion SDK for Any JVM Language A simple and easy to use client for the Notion API Here is an Notion API SDK for any JVM language users ?? This projec

Kazuhiro Sera 91 Dec 31, 2022
Trackingplan for Android SDK

With Trackingplan for Android you can make sure that your tracking is going as you planned without changing your current analytics stack or code.

Trackingplan 3 Oct 26, 2021
Desk360 Mobile Chat SDK for Android

Desk360 Chat Android SDK Introduction Desk360 Live Chat SDK is an open source Android library that provides live support to your customers directly fr

null 31 Dec 13, 2022
Storyblok Kotlin Multiplatform SDK sample (Android, JVM, JS)

storyblok-mp-SDK-sample *WIP* ... a showcase of the Storyblok Kotlin Multiplatform Client SDK. (Android, JVM, JS, iOS, ...) What's included ?? • About

Mike Penz 6 Jan 8, 2022