Coder Social home page Coder Social logo

unrealengine_imgui's Introduction

Unreal Engine ImGui "port" <https://github.com/sronsse/UnrealEngine_ImGui>

DESCRIPTION
  This repository contains an Unreal Engine project with Omar Cornut's ImGui
  framework (https://github.com/ocornut/imgui) integrated into a HUD class.
  The code base, by default, will display the test window provided as part
  of ImGui.

  Disclaimer: I am not an Unreal Engine nor an ImGui expert, so this code
  base is by no means guaranteed to be optimal.

VERSIONS
  Please find below the versions of both frameworks which were used:
  - Unreal Engine v4.15
  - ImGui v1.49

KNOWN LIMITATIONS
  Performance: the ImGui framework will pass index and vertex buffers as part
  of the command lists to be rendered. Unreal Engine does not seem to support
  this rather common method of rendering geometry at a high-level. In order
  to circumvent this issue, each triangle is manually extracted/recomposed
  from these buffers and rendered via the HUD class DrawMaterialTriangle
  method. This could severely impact performance.

  Clipping: part of the command lists to be rendered by ImGui provide as an
  input a clipping rectangle parameter, which typically is handled through
  scissoring functions (pixels falling outside of the rectangle are fully
  discarded). As Unreal Engine does not seem to support clipping rectangles
  when manually rendering triangle sets, all vertex positions along with
  their texture coordinates are altered to adapt to ImGui's requirements.
  While no issues were observed during functional testing, some unsupported
  edge cases may still exist.

  Keyboard input: the methods provided by Unreal Engine within the HUD class
  seem somewhat limited. Rather than implementing an event mechanism with a
  callback function, the HUD class manually polls for detected scan codes,
  which does have an impact in performance. Moreoever, the current code base
  in place deals with scan codes and convert them to UTF8 input on the fly
  for use with ImGui's text input widgets - this has a huge drawback: some
  characters simply are not supported at all for now (symbols located above
  numbers on a QWERTY keyboard in particular). Feedback on how to properly
  implement a generic input function recognizing all key combinations from
  that level is welcome.
  
HELP
  If you need help with this port or would like to submit pull requests, feel
  free to do so via the github interface or contact me at [email protected].

unrealengine_imgui's People

Contributors

sronsse 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.