Skip to content

feat(pipeline): implement Asset Pipeline (RF6.5)#66

Merged
LyeZinho merged 4 commits intomainfrom
41-asset-pipeline
May 8, 2026
Merged

feat(pipeline): implement Asset Pipeline (RF6.5)#66
LyeZinho merged 4 commits intomainfrom
41-asset-pipeline

Conversation

@LyeZinho
Copy link
Copy Markdown
Member

@LyeZinho LyeZinho commented May 8, 2026

@

Summary

Implements the complete Asset Pipeline system for the Caffeine Engine (RF6.5):

  • TextureEncoder: Converts raw pixels to .caf format with mipmap generation using box filter
  • AudioEncoder: Converts WAV files to .caf format with PCM16 encoding
  • MeshEncoder: Converts OBJ files to .caf format using existing MeshLoader
  • AssetManifest: JSON-based asset tracking with save/load functionality
  • AssetPipeline: Batch processing with incremental build support (CRC-based)
  • caf-encode CLI: Command-line tool for texture/audio/mesh/batch conversions

Implementation Details

  • All code is header-only (no .cpp for library components)
  • Pure C++20 with no external dependencies (no stb_image, dr_wav, cgltf)
  • Comprehensive test suite with 28+ tests covering all components
  • Follow exact style conventions from existing codebase

Testing

  • ✅ All tests pass (28+ tests in test_pipeline.cpp)
  • ✅ Builds successfully on MSVC (Windows)
  • ✅ No external dependencies required
  • ✅ Header-only implementation

Files Changed

New Files:

  • src/tools/PipelineTypes.hpp - Core pipeline types
  • src/tools/TextureEncoder.hpp - Texture encoding with mipmaps
  • src/tools/AudioEncoder.hpp - Audio encoding (WAV support)
  • src/tools/MeshEncoder.hpp - Mesh encoding (OBJ support)
  • src/tools/AssetManifest.hpp - Asset manifest JSON management
  • src/tools/AssetPipeline.hpp - Batch processing pipeline
  • tools/caf-encode/main.cpp - CLI tool
  • tests/test_pipeline.cpp - Comprehensive test suite

Modified Files:

  • CMakeLists.txt - Added caf-encode executable
  • src/Caffeine.hpp - Added tools module includes
  • tests/CMakeLists.txt - Added test_pipeline.cpp
  • docs/fase6/asset-pipeline.md - Updated status to ✅ Implementado

Acceptance Criteria (from RF6.5)

  • caf-encode texture converts raw pixels → .caf with mipmaps
  • caf-encode audio converts WAV → .caf PCM16
  • caf-encode mesh converts OBJ → .caf Mesh3D
  • caf-encode batch processes entire directories with parallelization support
  • Incremental build support via file timestamp checking
  • Asset manifest JSON generation
  • Comprehensive test coverage

Related Issues

Closes #41
@

…coder, MeshEncoder, AssetManifest (RF6.5)

- Add PipelineTypes.hpp with core types (MipLevel, MeshMetadata, ConversionResult, encode options)
- Implement TextureEncoder with mipmap generation using box filter
- Implement AudioEncoder with WAV parsing and PCM16 encoding
- Implement MeshEncoder with OBJ support via MeshLoader
- Add AssetManifest with JSON save/load for asset management
- Add AssetPipeline for batch processing with incremental build support
- Create caf-encode CLI tool with texture/audio/mesh/batch commands
- Add comprehensive test suite (28+ tests) in test_pipeline.cpp
- Update documentation to mark RF6.5 as implemented
- All code is header-only (no .cpp for library), C++20, no external deps
@LyeZinho LyeZinho linked an issue May 8, 2026 that may be closed by this pull request
8 tasks
@LyeZinho LyeZinho self-assigned this May 8, 2026
@LyeZinho LyeZinho added documentation Improvements or additions to documentation enhancement New feature or request planned-implementation Implementations planned according with roadmap labels May 8, 2026
@LyeZinho LyeZinho added this to the phase 6 milestone May 8, 2026
@LyeZinho LyeZinho merged commit e41c8d9 into main May 8, 2026
1 check passed
@LyeZinho LyeZinho deleted the 41-asset-pipeline branch May 8, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request planned-implementation Implementations planned according with roadmap

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Asset Pipeline

1 participant