# Documentation Index
Complete navigation for all shdrlib documentation.
## 📖 Start Here
- **[README.md](../README.md)** - Project overview and introduction
- **[QUICKSTART.md](../QUICKSTART.md)** - Get started in 5 minutes
- **[CONTRIBUTING.md](../CONTRIBUTING.md)** - How to contribute
- **[CHANGELOG.md](../CHANGELOG.md)** - Version history and changes
---
## 🚀 Getting Started
Essential guides for new users:
- **[Installation](getting-started/installation.md)** ✅ - Set up your development environment
- **[Quick Start Tutorial](getting-started/quickstart.md)** ✅ - Your first triangle in 5 minutes
- **[Vulkan Basics](getting-started/vulkan-basics.md)** ✅ - Essential concepts you need to know
- **[Choosing a Tier](getting-started/choosing-a-tier.md)** ✅ - EZ vs EX vs CORE comparison
- **[FAQ](getting-started/faq.md)** ✅ - Frequently asked questions
- **[Troubleshooting](getting-started/troubleshooting.md)** ✅ - Common issues and solutions
---
## 📚 User Guides
In-depth guides for each tier:
### EZ Tier (High-Level)
- **[EZ Tier Guide](guides/ez-tier-guide.md)** ✅ - Complete guide to the EZ tier
- Setup and initialization
- Rendering loop
- Buffers and textures
- Compute shaders
- Best practices
### EX Tier (Production) ⭐ Recommended
- **[EX Tier Guide](guides/ex-tier-guide.md)** ✅ - Complete guide to the EX tier
- RuntimeManager usage
- ShaderManager and PipelineBuilder
- Buffer helpers
- Image helpers
- Descriptor helpers
- Best practices
### CORE Tier (Low-Level)
- **[CORE Tier Guide](guides/core-tier-guide.md)** ✅ - Complete guide to the CORE tier
- Instance and device setup
- Manual shader compilation
- Pipeline creation
- Memory management
- Command buffers
- Synchronization
### Cross-Tier
- **[Migration Guide](guides/migration-guide.md)** ✅ - Moving between tiers
- When to drop down a tier
- When to move up a tier
- Mixing tiers in one project
---
## 🏗️ Architecture
Design philosophy and technical details:
- **[Overview](architecture/overview.md)** 📋 - Project goals and philosophy
- **[Three-Tier Design](architecture/three-tier-design.md)** 📋 - Why three tiers?
- **[Zero-Cost Abstractions](architecture/zero-cost-abstractions.md)** 📋 - How we maintain performance
- **[Safety Guarantees](architecture/safety-guarantees.md)** 📋 - Memory safety without GC
---
## 📖 API Reference
Detailed API documentation:
> **Note:** For detailed API documentation, run `cargo doc --open`. The files below are planned supplementary guides.
### CORE Tier API
- **[Instance](api/core/instance.md)** 📋 - Vulkan instance management
- **[Device](api/core/device.md)** 📋 - Logical device abstraction
- **[Queue](api/core/queue.md)** 📋 - Queue operations
- **[Surface](api/core/surface.md)** 📋 - Window surface handling
- **[Swapchain](api/core/swapchain.md)** 📋 - Swapchain management
- **[Shader](api/core/shader.md)** 📋 - Shader compilation
- **[Pipeline](api/core/pipeline.md)** 📋 - Pipeline objects
- **[Command](api/core/command.md)** 📋 - Command buffers
- **[Memory](api/core/memory.md)** 📋 - Buffers and images
- **[Descriptor](api/core/descriptor.md)** 📋 - Descriptor sets
- **[Sync](api/core/sync.md)** 📋 - Synchronization primitives
- **[Utils](api/core/utils.md)** 📋 - Utility functions
### EX Tier API
- **[RuntimeManager](api/ex/runtime-manager.md)** 📋 - Lifecycle management
- **[ShaderManager](api/ex/shader-manager.md)** 📋 - Shader and pipeline management
- **[PipelineBuilder](api/ex/pipeline-builder.md)** 📋 - Fluent pipeline configuration
- **[Buffer Helpers](api/ex/buffer-helpers.md)** 📋 - Common buffer patterns
- **[Image Helpers](api/ex/image-helpers.md)** 📋 - Texture and render target helpers
- **[Descriptor Helpers](api/ex/descriptor-helpers.md)** 📋 - Descriptor management
### EZ Tier API
- **[EzRenderer](api/ez/ez-renderer.md)** 📋 - Unified rendering interface
- **[EzFrame](api/ez/ez-frame.md)** 📋 - Frame rendering context
- **[EzConfig](api/ez/ez-config.md)** 📋 - Configuration options
---
## 🎨 Examples & Tutorials
Annotated code examples:
### EZ Tier Examples
- **[EZ Examples Overview](examples/ez-examples.md)** 📋
- Hello Triangle (30 lines)
- Compute Multiply
- Buffers Demo
### EX Tier Examples
- **[EX Examples Overview](examples/ex-examples.md)** 📋
- Triangle in 100 Lines
- Compute Shader Pipeline
- Textured Quad (50 lines)
### CORE Tier Examples
- **[CORE Examples Overview](examples/core-examples.md)** 📋
- Raw Triangle (400 lines)
- Compute Shader
- Custom Integration
---
## 🔧 Development
Documentation for contributors:
- **[CONTRIBUTING.md](../CONTRIBUTING.md)** - Contribution guidelines
- **[Development Workflow](../CONTRIBUTING.md#development-workflow)** - How to contribute
- **[Coding Standards](../CONTRIBUTING.md#coding-standards)** - Code style guide
- **[Testing](../CONTRIBUTING.md#testing-requirements)** - Testing guidelines
- **[Tier-Specific Guidelines](../CONTRIBUTING.md#tier-specific-guidelines)** - Per-tier rules
---
## 📦 Additional Resources
### Demo Code
Located in `demos/` directory:
- `demos/ez/` - EZ tier examples
- `demos/ex/` - EX tier examples
- `demos/core/` - CORE tier examples
### Benchmarks
Located in `benches/` directory:
- `shader_benchmarks.rs` - Shader compilation performance
- `buffer_benchmarks.rs` - Buffer operations
- `abstraction_overhead.rs` - Tier comparison
### Generated Documentation
Run `cargo doc --open` to view rustdoc API documentation.
---
## 🗂️ Document Status Legend
Throughout the documentation:
- ✅ **Complete** - Fully written and up-to-date
- 🚧 **In Progress** - Being actively worked on
- 📋 **Planned** - On the roadmap
- 🔄 **Needs Update** - Outdated content
---
## 📋 Documentation Roadmap
### Current Release (v0.1)
- ✅ Installation Guide
- ✅ Quick Start Tutorial
- ✅ Vulkan Basics Guide
- ✅ Choosing a Tier Guide
- ✅ FAQ
- ✅ Troubleshooting Guide
- ✅ EZ Tier Guide
- ✅ EX Tier Guide
- ✅ CORE Tier Guide
- ✅ Migration Guide
- 📋 Architecture Documentation (planned)
- 📋 Complete API Reference Content (planned)
- 📋 Examples Documentation (planned)
### Future Releases
- 📋 Video tutorials
- 📋 Interactive examples
- 📋 Performance optimization guide
- 📋 Advanced patterns cookbook
---
**Last Updated:** October 30, 2025
**Documentation Version:** 0.1.0