AeThex-Engine-Core/engine/thirdparty/metal-cpp/QuartzCore/CALayer.hpp
MrPiglr 9dddce666d
🚀 AeThex Engine v1.0 - Complete Fork
- Forked from Godot Engine 4.7-dev (MIT License)
- Rebranded to AeThex Engine with cyan/purple theme
- Added AI-powered development assistant module
- Integrated Claude API for code completion & error fixing
- Custom hexagon logo and branding
- Multi-platform CI/CD (Windows, Linux, macOS)
- Built Linux editor binary (151MB)
- Complete source code with all customizations

Tech Stack:
- C++ game engine core
- AI Module: Claude 3.5 Sonnet integration
- Build: SCons, 14K+ source files
- License: MIT (Godot) + Custom (AeThex features)

Ready for Windows build via GitHub Actions!
2026-02-23 05:01:56 +00:00

79 lines
2.4 KiB
C++

#pragma once
#include "CADefines.hpp"
#include "CAPrivate.hpp"
#include "../Foundation/NSObject.hpp"
#include <CoreGraphics/CoreGraphics.h>
namespace CA
{
using DynamicRange = NS::String*;
_CA_CONST(DynamicRange, DynamicRangeAutomatic);
_CA_CONST(DynamicRange, DynamicRangeStandard);
_CA_CONST(DynamicRange, DynamicRangeConstrainedHigh);
_CA_CONST(DynamicRange, DynamicRangeHigh);
class Layer : public NS::Referencing<Layer>
{
public:
bool wantsExtendedDynamicRangeContent() const;
void setWantsExtendedDynamicRangeContent(bool wantsExtendedDynamicRangeContent);
CA::DynamicRange preferredDynamicRange() const;
void setPreferredDynamicRange(CA::DynamicRange preferredDynamicRange);
CGFloat contentsHeadroom() const;
void setContentsHeadroom(CGFloat contentsHeadroom);
bool opaque() const;
void setOpaque(bool opaque);
};
} // namespace CA
// --- Inline implementations ---
_CA_INLINE bool CA::Layer::wantsExtendedDynamicRangeContent() const
{
return Object::sendMessage<bool>(this, _CA_PRIVATE_SEL(wantsExtendedDynamicRangeContent));
}
_CA_INLINE void CA::Layer::setWantsExtendedDynamicRangeContent(bool wantsExtendedDynamicRangeContent)
{
Object::sendMessage<void>(this, _CA_PRIVATE_SEL(setWantsExtendedDynamicRangeContent_), wantsExtendedDynamicRangeContent);
}
_CA_INLINE CA::DynamicRange CA::Layer::preferredDynamicRange() const
{
return Object::sendMessage<CA::DynamicRange>(this, _CA_PRIVATE_SEL(preferredDynamicRange));
}
_CA_INLINE void CA::Layer::setPreferredDynamicRange(CA::DynamicRange preferredDynamicRange)
{
Object::sendMessage<void>(this, _CA_PRIVATE_SEL(setPreferredDynamicRange_), preferredDynamicRange);
}
_CA_INLINE CGFloat CA::Layer::contentsHeadroom() const
{
return Object::sendMessage<CGFloat>(this, _CA_PRIVATE_SEL(contentsHeadroom));
}
_CA_INLINE void CA::Layer::setContentsHeadroom(CGFloat contentsHeadroom)
{
Object::sendMessage<void>(this, _CA_PRIVATE_SEL(setContentsHeadroom_), contentsHeadroom);
}
_CA_INLINE bool CA::Layer::opaque() const
{
return Object::sendMessage<bool>(this, _CA_PRIVATE_SEL(opaque));
}
_CA_INLINE void CA::Layer::setOpaque(bool opaque)
{
Object::sendMessage<void>(this, _CA_PRIVATE_SEL(setOpaque_), opaque);
}
_CA_PRIVATE_DEF_CONST(CA::DynamicRange, DynamicRangeAutomatic);
_CA_PRIVATE_DEF_CONST(CA::DynamicRange, DynamicRangeStandard);
_CA_PRIVATE_DEF_CONST(CA::DynamicRange, DynamicRangeConstrainedHigh);
_CA_PRIVATE_DEF_CONST(CA::DynamicRange, DynamicRangeHigh);