66 lines
2.6 KiB
Zig
66 lines
2.6 KiB
Zig
const std = @import("std");
|
|
|
|
// This test attempts to import the ACTUAL generated gpu_test.zig
|
|
// It will FAIL because gpu_test.zig references undefined types!
|
|
|
|
// Uncomment the line below to see the failure:
|
|
// const gpu = @import("../../zig-out/gpu_test.zig");
|
|
|
|
// Expected errors when uncommented:
|
|
// error: use of undeclared identifier 'Window'
|
|
// error: use of undeclared identifier 'Rect'
|
|
// error: use of undeclared identifier 'FColor'
|
|
// error: use of undeclared identifier 'FlipMode'
|
|
|
|
test "FAILS: cannot import generated gpu_test.zig due to missing dependencies" {
|
|
// If you uncomment the import above, you'll see compilation errors like:
|
|
//
|
|
// zig-out/gpu_test.zig:92:54: error: use of undeclared identifier 'Window'
|
|
// pub inline fn windowSupportsGPUSwapchainComposition(gpudevice: *GPUDevice, window: ?*Window, ...)
|
|
//
|
|
// zig-out/gpu_test.zig:299:56: error: use of undeclared identifier 'Rect'
|
|
// pub inline fn setGPUScissor(gpurenderpass: *GPURenderPass, scissor: *const Rect)
|
|
//
|
|
// zig-out/gpu_test.zig:303:64: error: use of undeclared identifier 'FColor'
|
|
// pub inline fn setGPUBlendConstants(gpurenderpass: *GPURenderPass, blend_constants: FColor)
|
|
|
|
// The parser generates code that references these types,
|
|
// but doesn't provide their definitions!
|
|
|
|
try std.testing.expect(true);
|
|
}
|
|
|
|
test "what the parser SHOULD do" {
|
|
// When parsing SDL_gpu.h, the parser should:
|
|
//
|
|
// 1. Detect that SDL_gpu.h includes other headers:
|
|
// #include <SDL3/SDL_video.h>
|
|
// #include <SDL3/SDL_rect.h>
|
|
// #include <SDL3/SDL_pixels.h>
|
|
// #include <SDL3/SDL_surface.h>
|
|
//
|
|
// 2. Scan generated declarations for types NOT defined in SDL_gpu.h:
|
|
// - Window (used in 8+ function signatures)
|
|
// - Rect (used in setGPUScissor and other functions)
|
|
// - FColor (used in setGPUBlendConstants)
|
|
// - FlipMode (used in GPU blit operations)
|
|
//
|
|
// 3. Parse those included headers to extract ONLY the needed types
|
|
//
|
|
// 4. Generate dependency modules:
|
|
// - video.zig (exports Window)
|
|
// - rect.zig (exports Rect)
|
|
// - pixels.zig (exports FColor)
|
|
// - surface.zig (exports FlipMode)
|
|
//
|
|
// 5. Add imports to gpu.zig:
|
|
// pub const Window = @import("video.zig").Window;
|
|
// pub const Rect = @import("rect.zig").Rect;
|
|
// pub const FColor = @import("pixels.zig").FColor;
|
|
// pub const FlipMode = @import("surface.zig").FlipMode;
|
|
//
|
|
// See DEPENDENCY_PLAN.md for full implementation details
|
|
|
|
try std.testing.expect(true);
|
|
}
|