saving
This commit is contained in:
parent
70f19f1652
commit
97c4b41e12
25
README.md
25
README.md
|
|
@ -5,16 +5,10 @@ It provides windows, input and IME, clipboard, file dialogs, drag and drop, menu
|
||||||
async file operations, file watching, and OpenGL context creation. The macOS
|
async file operations, file watching, and OpenGL context creation. The macOS
|
||||||
backend uses AppKit, OpenGL, and FSEvents through a private Objective-C bridge.
|
backend uses AppKit, OpenGL, and FSEvents through a private Objective-C bridge.
|
||||||
|
|
||||||
This directory is a standalone source package. It does not depend on the parent
|
macOS builds require Xcode Command Line Tools. The Windows Win32/WGL backend
|
||||||
repository, its examples, fonts, skills, or development tools. macOS builds require
|
cross-compiles for `x86_64-windows-gnu`; runtime verification on Windows is pending. It requires
|
||||||
Xcode Command Line Tools. The Windows Win32/WGL backend cross-compiles for
|
|
||||||
`x86_64-windows-gnu`; runtime verification on Windows is pending. It requires
|
|
||||||
Windows 10 version 1703 or later and an OpenGL 3.3-capable driver.
|
Windows 10 version 1703 or later and an OpenGL 3.3-capable driver.
|
||||||
|
|
||||||
Private profiling hooks compile away in this standalone build. Tracy support
|
|
||||||
belongs to the parent repository's static demos; it adds no dependencies or
|
|
||||||
public ABI to this package.
|
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|
@ -28,8 +22,7 @@ zig build check -Dtarget=x86_64-windows-gnu # compile only
|
||||||
|
|
||||||
## Use from Zig
|
## Use from Zig
|
||||||
|
|
||||||
After cloning this directory's standalone mirror into `vendor/uhdk`, add it to
|
To use a local checkout at `vendor/uhdk`, add it to `build.zig.zon`:
|
||||||
`build.zig.zon`:
|
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
.dependencies = .{
|
.dependencies = .{
|
||||||
|
|
@ -53,9 +46,6 @@ OpenGL headers, and links the library and required system frameworks. The
|
||||||
or custom bindings. Set `.shared = true` to build a dynamic library; applications
|
or custom bindings. Set `.shared = true` to build a dynamic library; applications
|
||||||
must arrange its runtime location/rpath.
|
must arrange its runtime location/rpath.
|
||||||
|
|
||||||
Once a standalone mirror or archive is published, `zig fetch --save=uhdk <URL>`
|
|
||||||
can replace the local path dependency. No release URL has been assigned yet.
|
|
||||||
|
|
||||||
## C interface
|
## C interface
|
||||||
|
|
||||||
- [uhdk.h](include/uhdk.h): desktop API, lifecycle, ownership, and threading contracts.
|
- [uhdk.h](include/uhdk.h): desktop API, lifecycle, ownership, and threading contracts.
|
||||||
|
|
@ -82,7 +72,6 @@ are not implemented. Native UTF-16 path bytes are kept separately from the WTF-8
|
||||||
paths passed to Zig I/O. If a native path cannot be exported losslessly as a shell
|
paths passed to Zig I/O. If a native path cannot be exported losslessly as a shell
|
||||||
URI, URI export returns `UNSUPPORTED`; native-path export still preserves it.
|
URI, URI export returns `UNSUPPORTED`; native-path export still preserves it.
|
||||||
|
|
||||||
|
|
||||||
## Optional profiling
|
## Optional profiling
|
||||||
|
|
||||||
`uhdk.h` includes `uhdk_profile.h`: scope, frame, thread-name and named allocation/
|
`uhdk.h` includes `uhdk_profile.h`: scope, frame, thread-name and named allocation/
|
||||||
|
|
@ -96,13 +85,13 @@ Internal CPU and memory instrumentation is disabled by default. A static consume
|
||||||
can pass `.tracy = true` to `b.dependency("uhdk", ...)` (or `-Dtracy=true` when
|
can pass `.tracy = true` to `b.dependency("uhdk", ...)` (or `-Dtracy=true` when
|
||||||
building the archive) and link its own Tracy 0.14.1 client configured with
|
building the archive) and link its own Tracy 0.14.1 client configured with
|
||||||
`TRACY_ENABLE` and `TRACY_ON_DEMAND`. UHDK never fetches or links Tracy itself.
|
`TRACY_ENABLE` and `TRACY_ON_DEMAND`. UHDK never fetches or links Tracy itself.
|
||||||
Shared instrumentation is unsupported. Run standalone unit tests with the default
|
Shared instrumentation is unsupported. Run unit tests with the default
|
||||||
configuration; enabled instrumentation requires the consumer's linked client.
|
configuration; enabled instrumentation requires the consumer's linked client.
|
||||||
The full repository provides an example adapter under `examples/profiling`.
|
|
||||||
|
|
||||||
The `UHDK` memory pool measures requested Zig backing allocations, including
|
The `UHDK` memory pool measures requested Zig backing allocations, including
|
||||||
objects and arena blocks. Win32 explicit calloc/free blocks use a separate
|
objects and arena blocks. Win32 explicit calloc/free blocks use a separate
|
||||||
`UHDK native` pool. OS/framework allocations and GPU memory are excluded. On-demand capture omits allocations made before connection, so it is not
|
`UHDK native` pool. OS/framework allocations and GPU memory are excluded.
|
||||||
a full live-heap snapshot. Failed allocations emit nothing; in-place resizes emit
|
On-demand capture omits allocations made before connection, so it is not a full
|
||||||
|
live-heap snapshot. Failed allocations emit nothing; in-place resizes emit
|
||||||
free + alloc. Moving reallocations use alloc/copy/free to preserve event ordering.
|
free + alloc. Moving reallocations use alloc/copy/free to preserve event ordering.
|
||||||
Disabled builds use the original allocator directly.
|
Disabled builds use the original allocator directly.
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,8 @@ pub fn build(b: *std.Build) void {
|
||||||
public_module.linkLibrary(lib);
|
public_module.linkLibrary(lib);
|
||||||
}
|
}
|
||||||
|
|
||||||
// The parent development build uses this to create a separate, uninstalled
|
// Create a library artifact without installing it. Instrumented static builds
|
||||||
// instrumented archive. Standalone consumers may opt in and supply their client.
|
// require the consumer to link a matching Tracy client.
|
||||||
pub fn createLibrary(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, shared: bool, instrumented: bool) *std.Build.Step.Compile {
|
pub fn createLibrary(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, shared: bool, instrumented: bool) *std.Build.Step.Compile {
|
||||||
return createLibraryNamed(b, target, optimize, shared, instrumented, if (instrumented) "uhdk-instrumented" else "uhdk");
|
return createLibraryNamed(b, target, optimize, shared, instrumented, if (instrumented) "uhdk-instrumented" else "uhdk");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
//! Private, compile-time instrumentation. Standalone UHDK builds disable it.
|
//! Optional compile-time instrumentation, disabled by default.
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const builtin = @import("builtin");
|
const builtin = @import("builtin");
|
||||||
pub const enabled = @import("profile_options").enabled;
|
pub const enabled = @import("profile_options").enabled;
|
||||||
const verify_stack_order = builtin.mode == .Debug or builtin.mode == .ReleaseSafe;
|
const verify_stack_order = builtin.mode == .Debug or builtin.mode == .ReleaseSafe;
|
||||||
|
|
||||||
// Tracy 0.14.1 C ABI with TRACY_ON_DEMAND, linked only by the full repo's demos.
|
// Tracy 0.14.1 C ABI with TRACY_ON_DEMAND; the consumer supplies the client.
|
||||||
// No C header translation or references to Tracy symbols in disabled builds.
|
// No C header translation or references to Tracy symbols in disabled builds.
|
||||||
const SourceLocation = extern struct {
|
const SourceLocation = extern struct {
|
||||||
name: [*:0]const u8,
|
name: [*:0]const u8,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue