[API] Memory editor extension (#110)

* Working on memory editor bindings for SpaiR/imgui-java#109

* Initial working implementation

* Add mising entry for imgui_club in .gitmodules

* Sorry, fixing readme link type and description for memory editor.

* Rename .club package to .memedit

* Rename _club.h to _memedit.h
This commit is contained in:
Trevor Flynn authored and GitHub committed 2022-02-02 13:17:07 +02:00
1 parent 9a5a1d2757
commit fefac80157
9 files changed
+251 -1

No files matched your search

@@ -0,0 +1,77 @@
package imgui.extension.memedit;
import imgui.binding.ImGuiStructDestroyable;
/**
* ImGui Club Memory Editor extension for ImGui
* Repo: https://github.com/ocornut/imgui_club
*/
public final class MemoryEditor extends ImGuiStructDestroyable {
/*JNI
#include "_memedit.h"
#define MEMORY_EDITOR ((MemoryEditor*)STRUCT_PTR)
*/
public MemoryEditor() {
}
public MemoryEditor(final long ptr) {
super(ptr);
}
@Override
protected long create() {
return nCreate();
}
private native long nCreate(); /*
return (intptr_t)(new MemoryEditor());
*/
public native void gotoAddrAndHighlight(long addrMin, long addrMax); /*
MEMORY_EDITOR->GotoAddrAndHighlight(addrMin, addrMax);
*/
public void calcSizes(final MemoryEditorSizes s, final long memSize, final long baseDisplayAddr) {
nCalcSizes(s.ptr, memSize, baseDisplayAddr);
}
public native void nCalcSizes(long ptr, long memSize, long baseDisplayAddr); /*
MEMORY_EDITOR->CalcSizes(*((MemoryEditor::Sizes*)ptr), static_cast<size_t>(memSize), static_cast<size_t>(baseDisplayAddr));
*/
public void drawWindow(final String title, final long memData, final long memSize) {
drawWindow(title, memData, memSize, 0x000);
}
public native void drawWindow(String title, long memData, long memSize, long baseDisplayAddr); /*
MEMORY_EDITOR->DrawWindow(title, reinterpret_cast<void*>(memData), static_cast<size_t>(memSize), static_cast<size_t>(baseDisplayAddr));
*/
public void drawContents(final long memData, final long memSize) {
drawContents(memData, memSize, 0x0000);
}
public native void drawContents(long memData, long memSize, long baseDisplayAddr); /*
MEMORY_EDITOR->DrawContents(reinterpret_cast<void*>(memData), static_cast<size_t>(memSize), static_cast<size_t>(baseDisplayAddr));
*/
public void drawOptionsLine(final MemoryEditorSizes s, final long memData, final long memSize, final long baseDisplayAddr) {
nDrawOptionsLine(s.ptr, memData, memSize, baseDisplayAddr);
}
public native void nDrawOptionsLine(long ptr, long memData, long memSize, long baseDisplayAddr); /*
MEMORY_EDITOR->DrawOptionsLine(*((MemoryEditor::Sizes*)ptr), reinterpret_cast<void*>(memData), static_cast<size_t>(memSize), static_cast<size_t>(baseDisplayAddr));
*/
public void drawPreviewLine(final MemoryEditorSizes s, final long memDataVoid, final long memSize, final long baseDisplayAddr) {
nDrawPreviewLine(s.ptr, memDataVoid, memSize, baseDisplayAddr);
}
public native void nDrawPreviewLine(long ptr, long memDataVoid, long memSize, long baseDisplayAddr); /*
MEMORY_EDITOR->DrawPreviewLine(*((MemoryEditor::Sizes*)ptr), reinterpret_cast<void*>(memDataVoid), static_cast<size_t>(memSize), static_cast<size_t>(baseDisplayAddr));
*/
}
@@ -0,0 +1,109 @@
package imgui.extension.memedit;
import imgui.binding.ImGuiStructDestroyable;
public final class MemoryEditorSizes extends ImGuiStructDestroyable {
/*JNI
#include "_memedit.h"
#define MEMORY_EDITOR_SIZES ((MemoryEditor::Sizes*)STRUCT_PTR)
*/
public MemoryEditorSizes() {
}
public MemoryEditorSizes(final long ptr) {
super(ptr);
}
@Override
protected long create() {
return nCreate();
}
private native long nCreate(); /*
return (intptr_t)(new MemoryEditor::Sizes());
*/
public native void setAddrDigitsCount(int addrDigitsCount); /*
MEMORY_EDITOR_SIZES->AddrDigitsCount = addrDigitsCount;
*/
public native int getAddrDigitsCount(); /*
return MEMORY_EDITOR_SIZES->AddrDigitsCount;
*/
public native void setLineHeight(float lineHeight); /*
MEMORY_EDITOR_SIZES->LineHeight = lineHeight;
*/
public native float getLineHeight(); /*
return MEMORY_EDITOR_SIZES->LineHeight;
*/
public native void setGlyphWidth(float glyphWidth); /*
MEMORY_EDITOR_SIZES->GlyphWidth = glyphWidth;
*/
public native float getGlyphWidth(); /*
return MEMORY_EDITOR_SIZES->GlyphWidth;
*/
public native void setHexCellWidth(float hexCellWidth); /*
MEMORY_EDITOR_SIZES->HexCellWidth = hexCellWidth;
*/
public native float getHexCellWidth(); /*
return MEMORY_EDITOR_SIZES->HexCellWidth;
*/
public native void setSpacingBetweenMidCols(float spacingBetweenMidCols); /*
MEMORY_EDITOR_SIZES->SpacingBetweenMidCols = spacingBetweenMidCols;
*/
public native float getSpacingBetweenMidCols(); /*
return MEMORY_EDITOR_SIZES->SpacingBetweenMidCols;
*/
public native void setPosHexStart(float posHexStart); /*
MEMORY_EDITOR_SIZES->PosHexStart = posHexStart;
*/
public native float getPosHexStart(); /*
return MEMORY_EDITOR_SIZES->PosHexStart;
*/
public native void setPosHexEnd(float posHexEnd); /*
MEMORY_EDITOR_SIZES->PosHexEnd = posHexEnd;
*/
public native float getPosHexEnd(); /*
return MEMORY_EDITOR_SIZES->PosHexEnd;
*/
public native void setPosAsciiStart(float posAsciiStart); /*
MEMORY_EDITOR_SIZES->PosAsciiStart = posAsciiStart;
*/
public native float getPosAsciiStart(); /*
return MEMORY_EDITOR_SIZES->PosAsciiStart;
*/
public native void setPosAsciiEnd(float posAsciiEnd); /*
MEMORY_EDITOR_SIZES->PosAsciiEnd = posAsciiEnd;
*/
public native float getPosAsciiEnd(); /*
return MEMORY_EDITOR_SIZES->PosAsciiEnd;
*/
public native void setWindowWidth(float windowWidth); /*
MEMORY_EDITOR_SIZES->WindowWidth = windowWidth;
*/
public native float getWindowWidth(); /*
return MEMORY_EDITOR_SIZES->WindowWidth;
*/
}
+4
View File
@@ -0,0 +1,4 @@
#pragma once
#include "_common.h"
#include "imgui_memory_editor.h"