mirror of
https://github.com/tildearrow/furnace.git
synced 2024-12-01 16:57:27 +00:00
b6fcba2ba3
do not use or your Furnace will need a replacement
58 lines
1.7 KiB
C++
58 lines
1.7 KiB
C++
// By Emil Ernerfeldt 2018
|
|
// LICENSE:
|
|
// This software is dual-licensed to the public domain and under the following
|
|
// license: you are granted a perpetual, irrevocable license to copy, modify,
|
|
// publish, and distribute this file as you see fit.
|
|
// WHAT:
|
|
// This is a software renderer for Dear ImGui.
|
|
// It is decently fast, but has a lot of room for optimization.
|
|
// The goal was to get something fast and decently accurate in not too many lines of code.
|
|
// LIMITATIONS:
|
|
// * It is not pixel-perfect, but it is good enough for must use cases.
|
|
// * It does not support painting with any other texture than the default font texture.
|
|
#pragma once
|
|
#include "imgui.h" // IMGUI_IMPL_API
|
|
#ifndef IMGUI_DISABLE
|
|
|
|
#include <cstdint>
|
|
|
|
struct SDL_Window;
|
|
struct ImDrawData;
|
|
|
|
struct SWTexture
|
|
{
|
|
uint32_t* pixels;
|
|
int width;
|
|
int height;
|
|
bool managed, isAlpha;
|
|
|
|
SWTexture(uint32_t* pix, int w, int h, bool a=false):
|
|
pixels(pix),
|
|
width(w),
|
|
height(h),
|
|
managed(false),
|
|
isAlpha(a) {}
|
|
SWTexture(int w, int h, bool a=false):
|
|
width(w),
|
|
height(h),
|
|
managed(true),
|
|
isAlpha(a) {
|
|
pixels=new uint32_t[width*height];
|
|
}
|
|
~SWTexture() {
|
|
if (managed) delete[] pixels;
|
|
}
|
|
};
|
|
|
|
IMGUI_IMPL_API bool ImGui_ImplSW_Init(SDL_Window* win);
|
|
IMGUI_IMPL_API void ImGui_ImplSW_Shutdown();
|
|
IMGUI_IMPL_API bool ImGui_ImplSW_NewFrame();
|
|
IMGUI_IMPL_API void ImGui_ImplSW_RenderDrawData(ImDrawData* draw_data);
|
|
|
|
// Called by Init/NewFrame/Shutdown
|
|
IMGUI_IMPL_API bool ImGui_ImplSW_CreateFontsTexture();
|
|
IMGUI_IMPL_API void ImGui_ImplSW_DestroyFontsTexture();
|
|
IMGUI_IMPL_API bool ImGui_ImplSW_CreateDeviceObjects();
|
|
IMGUI_IMPL_API void ImGui_ImplSW_DestroyDeviceObjects();
|
|
|
|
#endif // #ifndef IMGUI_DISABLE
|