ocornut / ocornut/imgui_test_engine

C bindings to imgui_test_engine

Open
#77 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bindings
Dominant language
C++
Stars
629
Forks
83
PR merge metrics
No merged PRs in 30d

Description

Hey there, many thanks for your work ❤ I just wanted to let you know that I recently wrote a generator to create C bindings for the test engine: https://github.com/JuliaImGui/cimgui_test_engine

It's inspired by (and is meant to be used with) cimgui. Since this is yet another C bindings generator floating around I feel I should explain why I created a new project instead of contributing to cimgui or dear_bindings. I actually made 2-3 separate attempts to modify dear_bindings to work with the test engine but I gave up each time because I really struggled to grok the dear_bindings architecture and add support for just parsing the test engine headers, let alone generate bindings. Since I'm not familiar with Lua I didn't even attempt to modify cimgui's parser, and I eventually decided that it would be less work to write my own generator using libclang to parse the headers and use its AST. And that worked out really well, almost all of the code in the generator script is dedicated to generating C bindings rather than doing any manual parsing.

The bindings are used in the latest version of ImGuiTestEngine.jl so I'm vaguely confident that they work, but of course if you or others have bug reports/suggestions I would be happy to have them :)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked cimgui_test_engine generator and its use in ImGuiTestEngine.jl. The issue names no repository files or tests and requests no specific change, so a maintainer would need to define the desired integration and acceptance criteria before work can be considered done.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, cpp
Domain
api, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.