Unified renderer implementation ("Un r imp"). Extensive examples from basic to advanced are provided as well.

Features

  • Compact user-header for the renderer API: A single all in one header for ease-of-use and best possible compile times
  • Renderer implementations try to stick as best as possible close-to-the-metal and as a result are just a few KiB instead of MiB in memory size
  • Renderer implementations load the entry points of Direct3D, OpenGL and so on during runtime, meaning it's possible to react on system failures by e.g. dynamically switching to another renderer implementation
  • Support for static and dynamic build
  • Renderer implementations for Direct3D 9 with support for HLSL and Cg shaders
  • Renderer implementations for Direct3D 10 with support for HLSL and Cg shaders
  • Renderer implementations for Direct3D 11 with support for HLSL and Cg shaders
  • Renderer implementations for OpenGL with support for GLSL and Cg shaders
  • Renderer implementations for OpenGL ES 2 with support for GLSL and Cg shaders
  • Cross-platform: Windows, Linux
  • Vertex shader (VS)
  • Tessellation control shader (TCS, "hull shader" in Direct3D terminology)
  • Tessellation evaluation shader (TES, "domain shader" in Direct3D terminology)
  • Geometry shader (GS)
  • Fragment shader (FS, "pixel shader" in Direct3D terminology)
  • Vertex array object (VAO, input-assembler (IA) stage) with support for multiple vertex streams
  • Vertex buffer object (VBO, input-assembler (IA) stage)
  • Index buffer object (IBO, input-assembler (IA) stage)
  • Swap chains, render into one or multiple operation system windows
  • Framebuffer object (FBO) used for render to texture, support for multiple render targets (MRT)
  • Uniform buffer object (UBO, "constant buffer" in Direct3D terminology)
  • Texture buffer object (TBO)
  • Textures: 2D texture and 2D texture array (more will follow later on)
  • State objects with mapping to API specific settings during creation, not runtime
  • Rasterizer state object (rasterizer stage (RS))
  • Depth stencil state object (output-merger (OM) stage)
  • Blend state object (output-merger (OM) stage)
  • Sampler state object (SO)
  • Collections to potentially reduce the number of state changes: Texture and sampler collection
  • Instanced arrays (shader model 3 feature, vertex array element advancing per-instance instead of per-vertex)
  • Draw instanced (shader model 4 feature, build in shader variable holding the current instance ID)
  • Debug methods: When using Direct3D <11.1, those methods map to the Direct3D 9 PIX functions (D3DPERF_* functions, also works directly within VisualStudio 2012 out-of-the-box)
  • Debug methods: Used inside the renderer implementations for better renderer debugging
  • Renderer implementation specific optimizations: OpenGL: Usage of direct state access (DSA), if available

Project Activity

See All Activity >

License

MIT License

Follow Unrimp

Unrimp Web Site

Other Useful Business Software
AI-generated apps that pass security review Icon
AI-generated apps that pass security review

Stop waiting on engineering. Build production-ready internal tools with AI—on your company data, in your cloud.

Retool lets you generate dashboards, admin panels, and workflows directly on your data. Type something like “Build me a revenue dashboard on my Stripe data” and get a working app with security, permissions, and compliance built in from day one. Whether on our cloud or self-hosted, create the internal software your team needs without compromising enterprise standards or control.
Try Retool free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Unrimp!

Additional Project Details

Operating Systems

Windows

Intended Audience

Developers

Programming Language

C++

Registered

2013-01-03