cpu start
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
// dear imgui: CPU framebuffer renderer backend
|
||||
// (supports caller-owned framebuffers/textures in generic packed pixel formats)
|
||||
//
|
||||
// Implemented features:
|
||||
// [X] Renderer: User texture binding. Use 'ImGui_ImplCPU_Texture*' as texture identifier.
|
||||
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices.
|
||||
// [X] Renderer: Texture updates support for dynamic font atlas.
|
||||
|
||||
#pragma once
|
||||
#ifndef IMGUI_DISABLE
|
||||
#include "imgui.h"
|
||||
|
||||
struct ImGui_ImplCPU_PixelFormat;
|
||||
typedef ImU32 (*ImGui_ImplCPU_MapColorFn)(const ImGui_ImplCPU_PixelFormat* format, unsigned char r, unsigned char g, unsigned char b, unsigned char a);
|
||||
|
||||
struct ImGui_ImplCPU_PixelFormat
|
||||
{
|
||||
int BitsPerPixel;
|
||||
int BytesPerPixel;
|
||||
ImU32 Rmask;
|
||||
ImU32 Gmask;
|
||||
ImU32 Bmask;
|
||||
ImU32 Amask;
|
||||
ImU8 Rshift;
|
||||
ImU8 Gshift;
|
||||
ImU8 Bshift;
|
||||
ImU8 Ashift;
|
||||
ImU8 Rloss;
|
||||
ImU8 Gloss;
|
||||
ImU8 Bloss;
|
||||
ImU8 Aloss;
|
||||
const ImU32* Palette; // Optional palette entries stored as IM_COL32(r, g, b, a).
|
||||
int PaletteSize; // Number of palette entries, or 0 when Palette is unused.
|
||||
ImGui_ImplCPU_MapColorFn MapColorFn; // Optional indexed/paletted mapping override. Return a raw packed pixel value.
|
||||
};
|
||||
|
||||
enum ImGui_ImplCPU_BuiltinFormat
|
||||
{
|
||||
ImGui_ImplCPU_BuiltinFormat_RGBA8888 = 0,
|
||||
ImGui_ImplCPU_BuiltinFormat_BGRA8888,
|
||||
ImGui_ImplCPU_BuiltinFormat_ARGB8888,
|
||||
ImGui_ImplCPU_BuiltinFormat_ABGR8888,
|
||||
ImGui_ImplCPU_BuiltinFormat_RGB565,
|
||||
ImGui_ImplCPU_BuiltinFormat_ARGB1555,
|
||||
ImGui_ImplCPU_BuiltinFormat_RGBA4444,
|
||||
ImGui_ImplCPU_BuiltinFormat_RGB888,
|
||||
ImGui_ImplCPU_BuiltinFormat_BGR888,
|
||||
ImGui_ImplCPU_BuiltinFormat_Alpha8,
|
||||
ImGui_ImplCPU_BuiltinFormat_COUNT
|
||||
};
|
||||
|
||||
struct ImGui_ImplCPU_Framebuffer
|
||||
{
|
||||
unsigned char* Pixels;
|
||||
int Width;
|
||||
int Height;
|
||||
int Pitch;
|
||||
const ImGui_ImplCPU_PixelFormat* Format; // Optional. Defaults to ImGui_ImplCPU_BuiltinFormat_RGBA8888.
|
||||
};
|
||||
|
||||
struct ImGui_ImplCPU_Texture
|
||||
{
|
||||
const unsigned char* Pixels;
|
||||
int Width;
|
||||
int Height;
|
||||
int Pitch;
|
||||
const ImGui_ImplCPU_PixelFormat* Format; // Optional. Defaults to ImGui_ImplCPU_BuiltinFormat_RGBA8888.
|
||||
};
|
||||
|
||||
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
|
||||
IMGUI_IMPL_API const ImGui_ImplCPU_PixelFormat* ImGui_ImplCPU_GetBuiltinPixelFormat(ImGui_ImplCPU_BuiltinFormat format);
|
||||
IMGUI_IMPL_API bool ImGui_ImplCPU_Init();
|
||||
IMGUI_IMPL_API void ImGui_ImplCPU_Shutdown();
|
||||
IMGUI_IMPL_API void ImGui_ImplCPU_NewFrame();
|
||||
IMGUI_IMPL_API void ImGui_ImplCPU_RenderDrawData(ImDrawData* draw_data, ImGui_ImplCPU_Framebuffer* framebuffer);
|
||||
|
||||
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates
|
||||
// by setting ImDrawData::Textures = nullptr to handle this manually.
|
||||
IMGUI_IMPL_API void ImGui_ImplCPU_UpdateTexture(ImTextureData* tex);
|
||||
|
||||
#endif // #ifndef IMGUI_DISABLE
|
||||
Reference in New Issue
Block a user