Euphoria
Classes | Namespaces | Enumerations | Functions | Variables
texture.h File Reference
#include "base/size.h"
#include "render/opengl_labels.h"
#include <cstdint>

Go to the source code of this file.

Classes

struct  eu::render::BaseTexture
 Base class for all textures, but only exist due to code reuse and can easily be inlined. More...
 
struct  eu::render::Texture2d
 A 2d image texture. More...
 
struct  eu::render::TextureCubemap
 A cubemap texture. More...
 
struct  eu::render::FrameBuffer
 "render to texture" feature More...
 
struct  eu::render::BoundFbo
 raii class to render to a FrameBuffer More...
 

Namespaces

namespace  eu
 
namespace  eu::render
 

Enumerations

enum class  eu::render::TextureEdge { eu::render::TextureEdge::clamp , eu::render::TextureEdge::repeat }
 
enum class  eu::render::TextureRenderStyle { eu::render::TextureRenderStyle::pixel , eu::render::TextureRenderStyle::mipmap , eu::render::TextureRenderStyle::linear }
 
enum class  eu::render::Transparency { eu::render::Transparency::include , eu::render::Transparency::exclude }
 
enum class  eu::render::ColorData { eu::render::ColorData::color_data , eu::render::ColorData::non_color_data , eu::render::ColorData::dont_care }
 
enum class  eu::render::SingleColor : std::uint32_t
 A single color in a format to load directly into open gl texture(ABGR on little endian). More...
 
enum class  eu::render::DepthBits { eu::render::DepthBits::use_none , eu::render::DepthBits::use_16 , eu::render::DepthBits::use_24 , eu::render::DepthBits::use_32 }
 The number of bits to use for the depth buffer. More...
 
enum class  eu::render::ColorBitsPerPixel { eu::render::ColorBitsPerPixel::use_depth , eu::render::ColorBitsPerPixel::use_8 , eu::render::ColorBitsPerPixel::use_16 , eu::render::ColorBitsPerPixel::use_32 }
 The number of bits/pixel to use for the color buffer. More...
 

Functions

constexpr SingleColor eu::render::color_from_rgba (uint8_t r, uint8_t g, uint8_t b, uint8_t a)
 Constructs a SingleColor value from individual red, green, blue, and alpha components.
 
Texture2d eu::render::load_image_from_color (DEBUG_LABEL_ARG_MANY SingleColor pixel, TextureEdge te, TextureRenderStyle trs, Transparency t, ColorData cd)
 
TextureCubemap eu::render::load_cubemap_from_color (DEBUG_LABEL_ARG_MANY SingleColor pixel, ColorData cd)
 
std::shared_ptr< FrameBuffereu::render::build_simple_framebuffer (DEBUG_LABEL_ARG_MANY const Size &size)
 Build a simple LDR frame buffer.
 
std::shared_ptr< FrameBuffereu::render::build_msaa_framebuffer (DEBUG_LABEL_ARG_MANY const Size &size, int msaa_samples, ColorBitsPerPixel bits_per_pixel)
 Builds a multisample anti-aliasing (MSAA) framebuffer for high-quality rendering.
 
std::shared_ptr< FrameBuffereu::render::build_hdr_floating_framebuffer (DEBUG_LABEL_ARG_MANY const Size &size, ColorBitsPerPixel bits_per_pixel)
 Build a HDR frame buffer.
 
std::shared_ptr< FrameBuffereu::render::build_shadow_framebuffer (DEBUG_LABEL_ARG_MANY const Size &size)
 Create a depth-only framebuffer for shadow rendering.
 
void eu::render::resolve_multisampled_buffer (const FrameBuffer &src, FrameBuffer *dst)
 

Variables

constexpr std::size_t eu::render::cubemap_size = 6
 0=right(x+), 1=left(x-), 2=top(y+), 3=bottom(y-), 4=front(z+), 5=back(z-)