Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. (#368, #375)
diff --git a/backends/imgui_impl_marmalade.cpp b/backends/imgui_impl_marmalade.cpp
deleted file mode 100644
index 6e9b8f8..0000000
--- a/backends/imgui_impl_marmalade.cpp
+++ /dev/null
@@ -1,318 +0,0 @@
-// dear imgui: Renderer + Platform Backend for Marmalade + IwGx
-// Marmalade code: Copyright (C) 2015 by Giovanni Zito (this file is part of Dear ImGui)
-
-// Implemented features:
-// [X] Renderer: User texture binding. Use 'CIwTexture*' as ImTextureID. Read the FAQ about ImTextureID!
-// Missing features:
-// [ ] Renderer: Clipping rectangles are not honored.
-
-// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
-// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
-// If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
-// Read online: https://github.com/ocornut/imgui/tree/master/docs
-
-// CHANGELOG
-// (minor and older changes stripped away, please see git history for details)
-// 2021-12-08: Renderer: Fixed mishandling of the the ImDrawCmd::IdxOffset field! This is an old bug but it never had an effect until some internal rendering changes in 1.86.
-// 2021-05-19: Renderer: Replaced direct access to ImDrawCmd::TextureId with a call to ImDrawCmd::GetTexID(). (will become a requirement)
-// 2019-07-21: Inputs: Added mapping for ImGuiKey_KeyPadEnter.
-// 2019-05-11: Inputs: Don't filter value from character callback before calling AddInputCharacter().
-// 2018-11-30: Misc: Setting up io.BackendPlatformName/io.BackendRendererName so they can be displayed in the About Window.
-// 2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_Marmalade_RenderDrawData() in the .h file so you can call it yourself.
-// 2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves.
-// 2018-02-06: Inputs: Added mapping for ImGuiKey_Space.
-
-#include "imgui.h"
-#include "imgui_impl_marmalade.h"
-
-#include <s3eClipboard.h>
-#include <s3ePointer.h>
-#include <s3eKeyboard.h>
-#include <IwTexture.h>
-#include <IwGx.h>
-
-// Data
-static double g_Time = 0.0f;
-static bool g_MousePressed[3] = { false, false, false };
-static CIwTexture* g_FontTexture = NULL;
-static char* g_ClipboardText = NULL;
-static bool g_osdKeyboardEnabled = false;
-
-// use this setting to scale the interface - e.g. on device you could use 2 or 3 scale factor
-static ImVec2 g_RenderScale = ImVec2(1.0f, 1.0f);
-
-// Render function.
-void ImGui_Marmalade_RenderDrawData(ImDrawData* draw_data)
-{
- // Avoid rendering when minimized
- if (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f)
- return;
-
- // Render command lists
- for (int n = 0; n < draw_data->CmdListsCount; n++)
- {
- const ImDrawList* cmd_list = draw_data->CmdLists[n];
- const ImDrawIdx* idx_buffer = cmd_list->IdxBuffer.Data;
- const int nVert = cmd_list->VtxBuffer.Size;
- CIwFVec2* pVertStream = IW_GX_ALLOC(CIwFVec2, nVert);
- CIwFVec2* pUVStream = IW_GX_ALLOC(CIwFVec2, nVert);
- CIwColour* pColStream = IW_GX_ALLOC(CIwColour, nVert);
-
- for (int i = 0; i < nVert; i++)
- {
- // FIXME-OPT: optimize multiplication on GPU using vertex shader/projection matrix.
- pVertStream[i].x = cmd_list->VtxBuffer[i].pos.x * g_RenderScale.x;
- pVertStream[i].y = cmd_list->VtxBuffer[i].pos.y * g_RenderScale.y;
- pUVStream[i].x = cmd_list->VtxBuffer[i].uv.x;
- pUVStream[i].y = cmd_list->VtxBuffer[i].uv.y;
- pColStream[i] = cmd_list->VtxBuffer[i].col;
- }
-
- IwGxSetVertStreamScreenSpace(pVertStream, nVert);
- IwGxSetUVStream(pUVStream);
- IwGxSetColStream(pColStream, nVert);
- IwGxSetNormStream(0);
-
- for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++)
- {
- const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[cmd_i];
- if (pcmd->UserCallback)
- {
- pcmd->UserCallback(cmd_list, pcmd);
- }
- else
- {
- // FIXME: Not honoring ClipRect fields.
- CIwMaterial* pCurrentMaterial = IW_GX_ALLOC_MATERIAL();
- pCurrentMaterial->SetShadeMode(CIwMaterial::SHADE_FLAT);
- pCurrentMaterial->SetCullMode(CIwMaterial::CULL_NONE);
- pCurrentMaterial->SetFiltering(false);
- pCurrentMaterial->SetAlphaMode(CIwMaterial::ALPHA_BLEND);
- pCurrentMaterial->SetDepthWriteMode(CIwMaterial::DEPTH_WRITE_NORMAL);
- pCurrentMaterial->SetAlphaTestMode(CIwMaterial::ALPHATEST_DISABLED);
- pCurrentMaterial->SetTexture((CIwTexture*)pcmd->GetTexID());
- IwGxSetMaterial(pCurrentMaterial);
- IwGxDrawPrims(IW_GX_TRI_LIST, (uint16*)(idx_buffer + pcmd->IdxOffset), pcmd->ElemCount);
- }
- }
- IwGxFlush();
- }
-
- // TODO: restore modified state (i.e. mvp matrix)
-}
-
-static const char* ImGui_Marmalade_GetClipboardText(void* /*user_data*/)
-{
- if (!s3eClipboardAvailable())
- return NULL;
-
- if (int size = s3eClipboardGetText(NULL, 0))
- {
- if (g_ClipboardText)
- delete[] g_ClipboardText;
- g_ClipboardText = new char[size];
- g_ClipboardText[0] = '\0';
- s3eClipboardGetText(g_ClipboardText, size);
- }
-
- return g_ClipboardText;
-}
-
-static void ImGui_Marmalade_SetClipboardText(void* /*user_data*/, const char* text)
-{
- if (s3eClipboardAvailable())
- s3eClipboardSetText(text);
-}
-
-int32 ImGui_Marmalade_PointerButtonEventCallback(void* system_data, void* user_data)
-{
- // pEvent->m_Button is of type s3ePointerButton and indicates which mouse
- // button was pressed. For touchscreen this should always have the value
- // S3E_POINTER_BUTTON_SELECT
- s3ePointerEvent* pEvent = (s3ePointerEvent*)system_data;
-
- if (pEvent->m_Pressed == 1)
- {
- if (pEvent->m_Button == S3E_POINTER_BUTTON_LEFTMOUSE)
- g_MousePressed[0] = true;
- if (pEvent->m_Button == S3E_POINTER_BUTTON_RIGHTMOUSE)
- g_MousePressed[1] = true;
- if (pEvent->m_Button == S3E_POINTER_BUTTON_MIDDLEMOUSE)
- g_MousePressed[2] = true;
- if (pEvent->m_Button == S3E_POINTER_BUTTON_MOUSEWHEELUP)
- io.MouseWheel += pEvent->m_y;
- if (pEvent->m_Button == S3E_POINTER_BUTTON_MOUSEWHEELDOWN)
- io.MouseWheel += pEvent->m_y;
- }
-
- return 0;
-}
-
-int32 ImGui_Marmalade_KeyCallback(void* system_data, void* user_data)
-{
- ImGuiIO& io = ImGui::GetIO();
- s3eKeyboardEvent* e = (s3eKeyboardEvent*)system_data;
- if (e->m_Pressed == 1)
- io.KeysDown[e->m_Key] = true;
- if (e->m_Pressed == 0)
- io.KeysDown[e->m_Key] = false;
-
- io.KeyCtrl = s3eKeyboardGetState(s3eKeyLeftControl) == S3E_KEY_STATE_DOWN || s3eKeyboardGetState(s3eKeyRightControl) == S3E_KEY_STATE_DOWN;
- io.KeyShift = s3eKeyboardGetState(s3eKeyLeftShift) == S3E_KEY_STATE_DOWN || s3eKeyboardGetState(s3eKeyRightShift) == S3E_KEY_STATE_DOWN;
- io.KeyAlt = s3eKeyboardGetState(s3eKeyLeftAlt) == S3E_KEY_STATE_DOWN || s3eKeyboardGetState(s3eKeyRightAlt) == S3E_KEY_STATE_DOWN;
- io.KeySuper = s3eKeyboardGetState(s3eKeyLeftWindows) == S3E_KEY_STATE_DOWN || s3eKeyboardGetState(s3eKeyRightWindows) == S3E_KEY_STATE_DOWN;
-
- return 0;
-}
-
-int32 ImGui_Marmalade_CharCallback(void* system_data, void* user_data)
-{
- ImGuiIO& io = ImGui::GetIO();
- s3eKeyboardCharEvent* e = (s3eKeyboardCharEvent*)system_data;
- io.AddInputCharacter((unsigned int)e->m_Char);
-
- return 0;
-}
-
-bool ImGui_Marmalade_CreateDeviceObjects()
-{
- // Build texture atlas
- ImGuiIO& io = ImGui::GetIO();
- unsigned char* pixels;
- int width, height;
- io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height);
-
- // Upload texture to graphics system
- g_FontTexture = new CIwTexture();
- g_FontTexture->SetModifiable(true);
- CIwImage& image = g_FontTexture->GetImage();
- image.SetFormat(CIwImage::ARGB_8888);
- image.SetWidth(width);
- image.SetHeight(height);
- image.SetBuffers(); // allocates and own buffers
- image.ReadTexels(pixels);
- g_FontTexture->SetMipMapping(false);
- g_FontTexture->SetFiltering(false);
- g_FontTexture->Upload();
-
- // Store our identifier
- io.Fonts->SetTexID((ImTextureID)g_FontTexture);
-
- return true;
-}
-
-void ImGui_Marmalade_InvalidateDeviceObjects()
-{
- if (g_ClipboardText)
- {
- delete[] g_ClipboardText;
- g_ClipboardText = NULL;
- }
-
- if (g_FontTexture)
- {
- ImGui::GetIO().Fonts->SetTexID(0);
- delete g_FontTexture;
- g_FontTexture = NULL;
- }
-}
-
-bool ImGui_Marmalade_Init(bool install_callbacks)
-{
- ImGuiIO& io = ImGui::GetIO();
- io.BackendPlatformName = io.BackendRendererName = "imgui_impl_marmalade";
-
- // Keyboard mapping. Dear ImGui will use those indices to peek into the io.KeysDown[] array.
- io.KeyMap[ImGuiKey_Tab] = s3eKeyTab
- io.KeyMap[ImGuiKey_LeftArrow] = s3eKeyLeft;
- io.KeyMap[ImGuiKey_RightArrow] = s3eKeyRight;
- io.KeyMap[ImGuiKey_UpArrow] = s3eKeyUp;
- io.KeyMap[ImGuiKey_DownArrow] = s3eKeyDown;
- io.KeyMap[ImGuiKey_PageUp] = s3eKeyPageUp;
- io.KeyMap[ImGuiKey_PageDown] = s3eKeyPageDown;
- io.KeyMap[ImGuiKey_Home] = s3eKeyHome;
- io.KeyMap[ImGuiKey_End] = s3eKeyEnd;
- io.KeyMap[ImGuiKey_Insert] = s3eKeyInsert;
- io.KeyMap[ImGuiKey_Delete] = s3eKeyDelete;
- io.KeyMap[ImGuiKey_Backspace] = s3eKeyBackspace;
- io.KeyMap[ImGuiKey_Space] = s3eKeySpace;
- io.KeyMap[ImGuiKey_Enter] = s3eKeyEnter;
- io.KeyMap[ImGuiKey_Escape] = s3eKeyEsc;
- io.KeyMap[ImGuiKey_KeyPadEnter] = s3eKeyNumPadEnter;
- io.KeyMap[ImGuiKey_A] = s3eKeyA;
- io.KeyMap[ImGuiKey_C] = s3eKeyC;
- io.KeyMap[ImGuiKey_V] = s3eKeyV;
- io.KeyMap[ImGuiKey_X] = s3eKeyX;
- io.KeyMap[ImGuiKey_Y] = s3eKeyY;
- io.KeyMap[ImGuiKey_Z] = s3eKeyZ;
-
- io.SetClipboardTextFn = ImGui_Marmalade_SetClipboardText;
- io.GetClipboardTextFn = ImGui_Marmalade_GetClipboardText;
-
- if (install_callbacks)
- {
- s3ePointerRegister(S3E_POINTER_BUTTON_EVENT, ImGui_Marmalade_PointerButtonEventCallback, 0);
- s3eKeyboardRegister(S3E_KEYBOARD_KEY_EVENT, ImGui_Marmalade_KeyCallback, 0);
- s3eKeyboardRegister(S3E_KEYBOARD_CHAR_EVENT, ImGui_Marmalade_CharCallback, 0);
- }
-
- return true;
-}
-
-void ImGui_Marmalade_Shutdown()
-{
- ImGui_Marmalade_InvalidateDeviceObjects();
-}
-
-void ImGui_Marmalade_NewFrame()
-{
- if (!g_FontTexture)
- ImGui_Marmalade_CreateDeviceObjects();
-
- ImGuiIO& io = ImGui::GetIO();
-
- // Setup display size (every frame to accommodate for window resizing)
- int w = IwGxGetScreenWidth(), h = IwGxGetScreenHeight();
- io.DisplaySize = ImVec2((float)w, (float)h);
- // For retina display or other situations where window coordinates are different from framebuffer coordinates. User storage only, presently not used by ImGui.
- io.DisplayFramebufferScale = g_scale;
-
- // Setup time step
- double current_time = s3eTimerGetUST() / 1000.0f;
- io.DeltaTime = g_Time > 0.0 ? (float)(current_time - g_Time) : (float)(1.0f / 60.0f);
- g_Time = current_time;
-
- double mouse_x, mouse_y;
- mouse_x = s3ePointerGetX();
- mouse_y = s3ePointerGetY();
- io.MousePos = ImVec2((float)mouse_x / g_scale.x, (float)mouse_y / g_scale.y); // Mouse position (set to -FLT_MAX,-FLT_MAX if no mouse / on another screen, etc.)
-
- for (int i = 0; i < 3; i++)
- {
- io.MouseDown[i] = g_MousePressed[i] || s3ePointerGetState((s3ePointerButton)i) != S3E_POINTER_STATE_UP; // If a mouse press event came, always pass it as "mouse held this frame", so we don't miss click-release events that are shorter than 1 frame.
- g_MousePressed[i] = false;
- }
-
- // TODO: Hide OS mouse cursor if ImGui is drawing it
- // s3ePointerSetInt(S3E_POINTER_HIDE_CURSOR,(io.MouseDrawCursor ? 0 : 1));
-
- // Show/hide OSD keyboard
- if (io.WantTextInput)
- {
- // Some text input widget is active?
- if (!g_osdKeyboardEnabled)
- {
- g_osdKeyboardEnabled = true;
- s3eKeyboardSetInt(S3E_KEYBOARD_GET_CHAR, 1); // show OSD keyboard
- }
- }
- else
- {
- // No text input widget is active
- if (g_osdKeyboardEnabled)
- {
- g_osdKeyboardEnabled = false;
- s3eKeyboardSetInt(S3E_KEYBOARD_GET_CHAR, 0); // hide OSD keyboard
- }
- }
-}
diff --git a/backends/imgui_impl_marmalade.h b/backends/imgui_impl_marmalade.h
deleted file mode 100644
index 87aaa47..0000000
--- a/backends/imgui_impl_marmalade.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// dear imgui: Renderer + Platform Backend for Marmalade + IwGx
-// Marmalade code: Copyright (C) 2015 by Giovanni Zito (this file is part of Dear ImGui)
-
-// Implemented features:
-// [X] Renderer: User texture binding. Use 'CIwTexture*' as ImTextureID. Read the FAQ about ImTextureID!
-
-// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
-// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
-// If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
-// Read online: https://github.com/ocornut/imgui/tree/master/docs
-
-#pragma once
-#include "imgui.h" // IMGUI_IMPL_API
-
-IMGUI_IMPL_API bool ImGui_Marmalade_Init(bool install_callbacks);
-IMGUI_IMPL_API void ImGui_Marmalade_Shutdown();
-IMGUI_IMPL_API void ImGui_Marmalade_NewFrame();
-IMGUI_IMPL_API void ImGui_Marmalade_RenderDrawData(ImDrawData* draw_data);
-
-// Use if you want to reset your rendering device without losing Dear ImGui state.
-IMGUI_IMPL_API void ImGui_Marmalade_InvalidateDeviceObjects();
-IMGUI_IMPL_API bool ImGui_Marmalade_CreateDeviceObjects();
-
-// Callbacks (installed by default if you enable 'install_callbacks' during initialization)
-// You can also handle inputs yourself and use those as a reference.
-IMGUI_IMPL_API int32 ImGui_Marmalade_PointerButtonEventCallback(void* system_data, void* user_data);
-IMGUI_IMPL_API int32 ImGui_Marmalade_KeyCallback(void* system_data, void* user_data);
-IMGUI_IMPL_API int32 ImGui_Marmalade_CharCallback(void* system_data, void* user_data);
diff --git a/docs/BACKENDS.md b/docs/BACKENDS.md
index f061d70..5bd2e83 100644
--- a/docs/BACKENDS.md
+++ b/docs/BACKENDS.md
@@ -12,7 +12,7 @@
e.g. DirectX11 ([imgui_impl_dx11.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_dx11.cpp)), OpenGL/WebGL ([imgui_impl_opengl3.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_opengl3.cpp), Vulkan ([imgui_impl_vulkan.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_vulkan.cpp), etc.
- For some high-level frameworks, a single backend usually handle both 'Platform' and 'Renderer' parts.<BR>
- e.g. Allegro 5 ([imgui_impl_allegro5.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_allegro5.cpp)), Marmalade ([imgui_impl_marmalade.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_marmalade.cpp)). If you end up creating a custom backend for your engine, you may want to do the same.
+ e.g. Allegro 5 ([imgui_impl_allegro5.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_allegro5.cpp)). If you end up creating a custom backend for your engine, you may want to do the same.
An application usually combines 1 Platform backend + 1 Renderer backend + main Dear ImGui sources.
For example, the [example_win32_directx11](https://github.com/ocornut/imgui/tree/master/examples/example_win32_directx11) application combines imgui_impl_win32.cpp + imgui_impl_dx11.cpp. There are 20+ examples in the [examples/](https://github.com/ocornut/imgui/blob/master/examples/) folder. See [EXAMPLES.MD](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md) for details.
@@ -82,14 +82,13 @@
List of high-level Frameworks Backends (combining Platform + Renderer):
imgui_impl_allegro5.cpp
- imgui_impl_marmalade.cpp
Emscripten is also supported.
The [example_emscripten_opengl3](https://github.com/ocornut/imgui/tree/master/examples/example_emscripten_opengl3) app uses imgui_impl_sdl.cpp + imgui_impl_opengl3.cpp, but other combos are possible.
### Backends for third-party frameworks, graphics API or other languages
-See https://github.com/ocornut/imgui/wiki/Bindings for the full list.
+See https://github.com/ocornut/imgui/wiki/Bindings for the full list (e.g. Adventure Game Studio, Cinder, Cocos2d-x, Game Maker Studio2, Godot, LÖVE+LUA, Magnum, Monogame, Ogre, openFrameworks, OpenSceneGraph, SFML, Sokol, Unity, Unreal Engine and many others).
### Recommended Backends
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 25d91ed..8f45f07 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -40,6 +40,8 @@
Please open an issue if you think you really need this function. (#3841)
- Backends: OSX: Added NSView* parameter to ImGui_ImplOSX_Init(). (#4759) [@stuartcarnie]
Updated Apple+Metal and Apple+GL example applications accordingly.
+- Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. (#368, #375)
+ Find last supported version at https://github.com/ocornut/imgui/wiki/Bindings
Other Changes:
diff --git a/docs/EXAMPLES.md b/docs/EXAMPLES.md
index 63b64d2..8321aa1 100644
--- a/docs/EXAMPLES.md
+++ b/docs/EXAMPLES.md
@@ -141,10 +141,6 @@
= main.cpp + imgui_impl_glut.cpp + imgui_impl_opengl2.cpp <BR>
Note that GLUT/FreeGLUT is largely obsolete software, prefer using GLFW or SDL.
-[example_marmalade/](https://github.com/ocornut/imgui/blob/master/examples/example_marmalade/) <BR>
-Marmalade example using IwGx. <BR>
-= main.cpp + imgui_impl_marmalade.cpp
-
[example_null/](https://github.com/ocornut/imgui/blob/master/examples/example_null/) <BR>
Null example, compile and link imgui, create context, run headless with no inputs and no graphics output. <BR>
= main.cpp <BR>
diff --git a/docs/README.md b/docs/README.md
index 58fcdb2..3190f7d 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -118,7 +118,7 @@
Officially maintained backends/bindings (in repository):
- Renderers: DirectX9, DirectX10, DirectX11, DirectX12, Metal, OpenGL/ES/ES2, SDL_Renderer, Vulkan, WebGPU.
- Platforms: GLFW, SDL2, Win32, Glut, OSX, Android.
-- Frameworks: Emscripten, Allegro5, Marmalade.
+- Frameworks: Allegro5, Emscripten.
[Third-party backends/bindings](https://github.com/ocornut/imgui/wiki/Bindings) wiki page:
- Languages: C, C# and: Beef, ChaiScript, Crystal, D, Go, Haskell, Haxe/hxcpp, Java, JavaScript, Julia, Kotlin, Lobster, Lua, Odin, Pascal, PureBasic, Python, Ruby, Rust, Swift...
diff --git a/examples/example_marmalade/data/app.icf b/examples/example_marmalade/data/app.icf
deleted file mode 100644
index fcd6585..0000000
--- a/examples/example_marmalade/data/app.icf
+++ /dev/null
@@ -1,32 +0,0 @@
-# This file is for configuration settings for your
-# application.
-#
-# The syntax is similar to windows .ini files ie
-#
-# [GroupName]
-# Setting = Value
-#
-# Which can be read by your application using
-# e.g s3eConfigGetString("GroupName", "Setting", string)
-#
-# All settings must be documented in .config.txt files.
-# New settings specific to this application should be
-# documented in app.config.txt
-#
-# Some conditional operations are also permitted, see the
-# S3E documentation for details.
-
-[S3E]
-MemSize=6000000
-MemSizeDebug=6000000
-DispFixRot=FixedLandscape
-
-# emulate iphone 5 resolution, change these settings to emulate other display resolution
-WinWidth=1136
-WinHeight=640
-
-[GX]
-DataCacheSize=131070
-
-[Util]
-#MemoryBreakpoint=1282
diff --git a/examples/example_marmalade/main.cpp b/examples/example_marmalade/main.cpp
deleted file mode 100644
index e97cb53..0000000
--- a/examples/example_marmalade/main.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// Dear ImGui: standalone example application for Marmalade
-// If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
-// Read online: https://github.com/ocornut/imgui/tree/master/docs
-
-// Copyright (C) 2015 by Giovanni Zito
-// This file is part of Dear ImGui
-
-#include "imgui.h"
-#include "imgui_impl_marmalade.h"
-#include <stdio.h>
-
-#include <s3eKeyboard.h>
-#include <s3ePointer.h>
-#include <IwGx.h>
-
-int main(int, char**)
-{
- IwGxInit();
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsClassic();
-
- // Setup Platform/Renderer backends
- ImGui_Marmalade_Init(true);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
- //IM_ASSERT(font != NULL);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- while (true)
- {
- if (s3eDeviceCheckQuitRequest())
- break;
-
- // Poll and handle inputs
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- s3eKeyboardUpdate();
- s3ePointerUpdate();
-
- // Start the Dear ImGui frame
- ImGui_Marmalade_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to created a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- IwGxSetColClear(clear_color.x * 255, clear_color.y * 255, clear_color.z * 255, clear_color.w * 255);
- IwGxClear();
- ImGui_Marmalade_RenderDrawData(ImGui::GetDrawData());
- IwGxSwapBuffers();
-
- s3eDeviceYield(0);
- }
-
- // Cleanup
- ImGui_Marmalade_Shutdown();
- ImGui::DestroyContext();
- IwGxTerminate();
-
- return 0;
-}
diff --git a/examples/example_marmalade/marmalade_example.mkb b/examples/example_marmalade/marmalade_example.mkb
deleted file mode 100644
index 4e765f1..0000000
--- a/examples/example_marmalade/marmalade_example.mkb
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env mkb
-
-# ImGui - standalone example application for Marmalade
-# Copyright (C) 2015 by Giovanni Zito
-# This file is part of ImGui
-# https://github.com/ocornut/imgui
-
-define IMGUI_DISABLE_INCLUDE_IMCONFIG_H
-define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS
-define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS
-define _snprintf=snprintf
-
-options
-{
- optimise-speed=1
-}
-
-includepaths
-{
- ../..
- ../../backends
-}
-
-subprojects
-{
- iwgx
-}
-
-files
-{
- (.)
- ["imgui"]
- ../../imgui.cpp
- ../../imgui_demo.cpp
- ../../imgui_draw.cpp
- ../../imgui_tables.cpp
- ../../imgui_widgets.cpp
- ../../imconfig.h
- ../../imgui.h
- ../../imgui_internal.h
-
- ["imgui","Marmalade backend"]
- ../../backends/imgui_impl_marmalade.h
- ../../backends/imgui_impl_marmalade.cpp
- main.cpp
-
-}
diff --git a/imgui.cpp b/imgui.cpp
index 77ea282..79c9fe6 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -380,6 +380,7 @@
When you are not sure about an old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
+ - 2021/12/20 (1.86) - backends: removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. Find last supported version at https://github.com/ocornut/imgui/wiki/Bindings
- 2021/11/04 (1.86) - removed CalcListClipping() function. Prefer using ImGuiListClipper which can return non-contiguous ranges. Please open an issue if you think you really need this function.
- 2021/08/23 (1.85) - removed GetWindowContentRegionWidth() function. keep inline redirection helper. can use 'GetWindowContentRegionMax().x - GetWindowContentRegionMin().x' instead for generally 'GetContentRegionAvail().x' is more useful.
- 2021/07/26 (1.84) - commented out redirecting functions/enums names that were marked obsolete in 1.67 and 1.69 (March 2019):