Skip to content

Commit a863d63

Browse files
committed
Documentation overhaul.
1 parent cfaf721 commit a863d63

40 files changed

Lines changed: 111 additions & 66 deletions

Documentation/Hello.gif

2.79 MB
Loading

Documentation/HelloCompute.gif

1.28 MB
Loading

Documentation/index.md

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,39 @@
1-
ObjectivelyGPU {#index}
2-
===============
1+
ObjectivelyGPU
2+
==============
3+
Object oriented graphics framework for SDL3 and C.
34

4-
[ObjectivelyGPU](https://github.com/jdolan/ObjectivelyGPU) is an object-oriented wrapper around [SDL3](https://libsdl.org)'s GPU API for [GNU C](https://www.gnu.org/software/gnu-c-manual/). It builds on [Objectively](https://github.com/jdolan/Objectively) to deliver a clean, idiomatic C API for modern GPU programming.
5+
Zlib license.
6+
7+
## About
8+
9+
[ObjectivelyGPU](https://github.com/jdolan/ObjectivelyGPU) is a cross-platform, object oriented graphics framework for the C programming language. Built on [Objectively](https://github.com/jdolan/Objectively) and [SDL3](https://libsdl.org)'s GPU API, it provides a clean, idiomatic C API for modern GPU programming across Metal, Vulkan, and Direct3D 12.
510

611
## Features
712

8-
- **RenderDevice** — device creation, buffer/texture/sampler allocation, and shader pipeline compilation
9-
- **CommandBuffer** — render, compute, and copy command recording
10-
- **RenderPass**, **ComputePass**, **CopyPass** — typed command encoder wrappers
11-
- Shader compilation via [SDL_shadercross](https://github.com/libsdl-org/SDL_shadercross) (HLSL → SPIR-V / MSL)
12-
- macOS and iOS (Metal), Windows (Direct3D 12), Linux (Vulkan) via SDL3 backends
13+
- **macOS, iOS, Windows, Linux & Android** cross-platform support via SDL3 (Metal, Direct3D 12, Vulkan)
14+
- **RenderDevice** with a `beginFrame` / `endFrame` loop over the swapchain
15+
- **Resource objects**: Buffer, Texture, Sampler, Shader, GraphicsPipeline, ComputePipeline
16+
- **Typed passes**: RenderPass, ComputePass, CopyPass with command-lifecycle validation
17+
- **Framebuffer** with multiple render targets, depth, and MSAA with automatic resolve
18+
- **Shaders** authored in GLSL and loaded via the Objectively Resource system
19+
- **Mathlib**: vector, matrix, and quaternion math for 3D graphics
1320

14-
## API
21+
## Class Hierarchy
1522

16-
Browse the [class hierarchy](hierarchy.html) to navigate the API.
23+
Browse the [class hierarchy](hierarchy.html) to navigate the full API.
1724

18-
## Building
25+
## Getting Started
1926

2027
```sh
2128
autoreconf -i
2229
./configure
2330
make && sudo make install
2431
```
32+
33+
See the [Hello](https://github.com/jdolan/ObjectivelyGPU/blob/main/Examples/Hello.c) and [HelloCompute](https://github.com/jdolan/ObjectivelyGPU/blob/main/Examples/HelloCompute.c) examples to draw your first frame.
34+
35+
## Examples
36+
37+
![Hello — a spinning, multisampled 3D cube](Hello.gif)
38+
39+
![HelloCompute — particles animated by a compute shader](HelloCompute.gif)

Doxyfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
DOXYFILE_ENCODING = UTF-8
22
PROJECT_NAME = "ObjectivelyGPU"
33
PROJECT_NUMBER =
4-
PROJECT_BRIEF = "Object oriented GPU framework for SDL3 and GNU C"
4+
PROJECT_BRIEF = "Object oriented graphics framework for SDL3 and C"
55
PROJECT_LOGO =
66
OUTPUT_DIRECTORY = Documentation
77
OUTPUT_LANGUAGE = English
@@ -16,6 +16,7 @@ GENERATE_BUGLIST = YES
1616
GENERATE_DEPRECATEDLIST= YES
1717
INPUT = Documentation/index.md Sources
1818
INPUT_ENCODING = UTF-8
19+
IMAGE_PATH = Documentation
1920
RECURSIVE = YES
2021
EXCLUDE_SYMBOLS = *Interface
2122
USE_MDFILE_AS_MAINPAGE = Documentation/index.md

Examples/Hello.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* ObjectivelyGPU: Object oriented GPU layer for SDL3 and GNU C.
2+
* ObjectivelyGPU: Object oriented graphics framework for SDL3 and C.
33
* Copyright (C) 2026 Jay Dolan <jay@jaydolan.com>
44
*
55
* This software is provided 'as-is', without any express or implied

Examples/Hello.frag.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* ObjectivelyGPU: SDL3 GPU API wrapper for GNU C.
2+
* ObjectivelyGPU: Object oriented graphics framework for SDL3 and C.
33
* Copyright (C) 2014 Jay Dolan <jay@jaydolan.com>
44
*
55
* This software is provided 'as-is', without any express or implied

Examples/Hello.vert.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* ObjectivelyGPU: SDL3 GPU API wrapper for GNU C.
2+
* ObjectivelyGPU: Object oriented graphics framework for SDL3 and C.
33
* Copyright (C) 2014 Jay Dolan <jay@jaydolan.com>
44
*
55
* This software is provided 'as-is', without any express or implied

Examples/HelloCompute.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* ObjectivelyGPU: Object oriented GPU layer for SDL3 and GNU C.
2+
* ObjectivelyGPU: Object oriented graphics framework for SDL3 and C.
33
* Copyright (C) 2026 Jay Dolan <jay@jaydolan.com>
44
*
55
* This software is provided 'as-is', without any express or implied

Examples/HelloCompute.comp.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* ObjectivelyGPU: SDL3 GPU API wrapper for GNU C.
2+
* ObjectivelyGPU: Object oriented graphics framework for SDL3 and C.
33
* Copyright (C) 2014 Jay Dolan <jay@jaydolan.com>
44
*
55
* This software is provided 'as-is', without any express or implied

Examples/HelloCompute.frag.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* ObjectivelyGPU: SDL3 GPU API wrapper for GNU C.
2+
* ObjectivelyGPU: Object oriented graphics framework for SDL3 and C.
33
* Copyright (C) 2014 Jay Dolan <jay@jaydolan.com>
44
*
55
* This software is provided 'as-is', without any express or implied

0 commit comments

Comments
 (0)