Contributing Guide 
Thank you for your interest in contributing to GPUPixel! This guide will help you get started with contributing to our project.
Ways to Contribute 
Code Contributions 
- Fork and Clone - Fork the GPUPixel repository
- Clone your fork locally
 
- Create a Branch - Create a new branch for your feature or fix
- Use clear, descriptive branch names
 
- Make Changes - Follow our coding style and guidelines
- Write clear commit messages
- Add tests if applicable
 
- Submit Pull Request - Ensure your PR description clearly explains the changes
- Link any related issues
 
Documentation 
- Fix typos or clarify existing documentation
- Add missing documentation for features
- Translate documentation to other languages
- Improve code demo
Bug Reports 
When reporting bugs:
- Use the issue template
- Include clear steps to reproduce
- Provide system information
- Add screenshots if applicable
Feature Requests 
When suggesting features:
- Explain the problem you're trying to solve
- Describe the feature and its benefits
- Consider implementation complexity
Development Setup 
- Prerequisites - C++11 compiler
- CMake 3.10+
- OpenGL/ES development environment
 
- Build Instructions 
bash
   git clone https://github.com/YOUR_USERNAME/gpupixel.git
   cd gpupixel
   mkdir build && cd build
   cmake ..
   makeCode Style Guidelines 
We follow the Google C++ Style Guide with some modifications:
General Rules 
- Use C++11 features appropriately
- Follow existing code formatting
- Add comments for complex logic
- Keep functions focused and concise
Specific Guidelines 
- Use 4 spaces for indentation, not tabs
- Maximum line length is 100 characters
- Use camelCasefor variable and function names
- Use PascalCasefor class names
- Use UPPER_CASEfor constants and macros
- Place opening braces on the same line
- Add spaces around operators and after commas
Example 
cpp
class MyClass {
public:
    void doSomething(const std::string& inputParam) {
        if (inputParam.empty()) {
            return;
        }
        
        int someValue = calculateValue(inputParam);
        processResult(someValue);
    }
    
private:
    static const int MAX_VALUE = 100;
    std::string className_;
};Testing 
- Ensure existing tests pass
- Test on multiple platforms if possible
Community Guidelines 
- Be respectful and inclusive
- Help others in discussions
- Follow our code of conduct
- Give credit where due
Getting Help 
- Join our Discord community
- Ask questions in GitHub Discussions
- Contact maintainers via email
License 
By contributing to GPUPixel, you agree that your contributions will be licensed under the Apache-2.0 License .
