Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/inkyblackness/imgui-go-examples

Examples of Dear ImGui for Go
https://github.com/inkyblackness/imgui-go-examples

dear-imgui examples go golang gui hacktoberfest imgui toolkit ui

Last synced: about 2 months ago
JSON representation

Examples of Dear ImGui for Go

Awesome Lists containing this project

README

        

# Examples of Dear ImGui for Go

[![Go Report Card](https://goreportcard.com/badge/github.com/inkyblackness/imgui-go-examples)](https://goreportcard.com/report/github.com/inkyblackness/imgui-go-examples)
[![Lint Status](https://github.com/inkyblackness/imgui-go-examples/workflows/golangci-lint/badge.svg)](https://github.com/inkyblackness/imgui-go-examples/actions)

## Discontinued
**This repository is no longer maintained as per 2022-12-31.
Please refer to the README of the main repository for details and alternatives: https://github.com/inkyblackness/imgui-go .**

--

This project contains a set of [Go](https://www.golang.org) examples for [imgui-go](https://github.com/inkyblackness/imgui-go), which is a wrapper for [**Dear ImGui**](https://github.com/ocornut/imgui).

It provides reference implementations on how to use and integrate **Dear ImGui** in Go.

![Screenshot](assets/screenshot.png)

## Layout
The project follows the basic concept of the examples of **Dear ImGui** by separating platform and renderer bindings from the example applications that wire them together in compatible constellations.

* `cmd` contains the main functions of the example applications. They typically combine a platform with a renderer.
* `internal` contains the reusable library components
* `platforms` contains code for mouse/keyboard/gamepad inputs, cursor shape, timing, windowing. For example based on: [GLFW3](https://github.com/go-gl/glfw) and [SDL2](https://github.com/veandco/go-sdl2).
* `renderers` contains code for creating the main font texture, rendering imgui draw data. For example using: [OpenGL](https://github.com/go-gl) (both v2.1 (fixed pipe) and v3.2 (shaders) via [glow](https://github.com/go-gl/glow) generated binding code)
* `example` contains the common example code.
* `demo` contains the ported `imgui_demo.cpp` code to showcase what is wrapped.

## Running examples

Some platforms and/or renderers may require dedicated build flags to be passed.
Each example comes with a separate `README.md` that describes how to run them.

> Build flags are used in order to avoid compiling all the libraries at once.

## License

The project is available under the terms of the **New BSD License** (see LICENSE file).