feat(api): bump Dear ImGui from 1.89.0 to 1.90.9

This commit is contained in:
SpaiR authored and GitHub committed 2025-08-26 13:33:36 +03:00
1 parent 718633e61e
commit 634e28b76a
61 files changed
+11728 -7827

No files matched your search

@@ -66,6 +66,19 @@ public final class ImDrawList extends ImGuiStruct {
THIS->Flags = value;
*/
// [Internal, used while building lists]
/**
* [Internal] generally == VtxBuffer.Size unless we are past 64K vertices, in which case this gets reset to 0.
*/
public int getVtxCurrentIdx() {
return nGetVtxCurrentIdx();
}
private native int nGetVtxCurrentIdx(); /*
return THIS->_VtxCurrentIdx;
*/
/**
* Render-level scissoring.
* This is passed down to your render function but not used for CPU-side coarse clipping.
@@ -606,6 +619,104 @@ public final class ImDrawList extends ImGuiStruct {
THIS->AddNgonFilled(center, radius, col, num_segments);
*/
public void addEllipse(final ImVec2 center, final ImVec2 radius, final int col) {
nAddEllipse(center.x, center.y, radius.x, radius.y, col);
}
public void addEllipse(final float centerX, final float centerY, final float radiusX, final float radiusY, final int col) {
nAddEllipse(centerX, centerY, radiusX, radiusY, col);
}
public void addEllipse(final ImVec2 center, final ImVec2 radius, final int col, final float rot) {
nAddEllipse(center.x, center.y, radius.x, radius.y, col, rot);
}
public void addEllipse(final float centerX, final float centerY, final float radiusX, final float radiusY, final int col, final float rot) {
nAddEllipse(centerX, centerY, radiusX, radiusY, col, rot);
}
public void addEllipse(final ImVec2 center, final ImVec2 radius, final int col, final float rot, final float numSegments) {
nAddEllipse(center.x, center.y, radius.x, radius.y, col, rot, numSegments);
}
public void addEllipse(final float centerX, final float centerY, final float radiusX, final float radiusY, final int col, final float rot, final float numSegments) {
nAddEllipse(centerX, centerY, radiusX, radiusY, col, rot, numSegments);
}
public void addEllipse(final ImVec2 center, final ImVec2 radius, final int col, final float rot, final float numSegments, final float thickness) {
nAddEllipse(center.x, center.y, radius.x, radius.y, col, rot, numSegments, thickness);
}
public void addEllipse(final float centerX, final float centerY, final float radiusX, final float radiusY, final int col, final float rot, final float numSegments, final float thickness) {
nAddEllipse(centerX, centerY, radiusX, radiusY, col, rot, numSegments, thickness);
}
private native void nAddEllipse(float centerX, float centerY, float radiusX, float radiusY, int col); /*MANUAL
ImVec2 center = ImVec2(centerX, centerY);
ImVec2 radius = ImVec2(radiusX, radiusY);
THIS->AddEllipse(center, radius, col);
*/
private native void nAddEllipse(float centerX, float centerY, float radiusX, float radiusY, int col, float rot); /*MANUAL
ImVec2 center = ImVec2(centerX, centerY);
ImVec2 radius = ImVec2(radiusX, radiusY);
THIS->AddEllipse(center, radius, col, rot);
*/
private native void nAddEllipse(float centerX, float centerY, float radiusX, float radiusY, int col, float rot, float numSegments); /*MANUAL
ImVec2 center = ImVec2(centerX, centerY);
ImVec2 radius = ImVec2(radiusX, radiusY);
THIS->AddEllipse(center, radius, col, rot, numSegments);
*/
private native void nAddEllipse(float centerX, float centerY, float radiusX, float radiusY, int col, float rot, float numSegments, float thickness); /*MANUAL
ImVec2 center = ImVec2(centerX, centerY);
ImVec2 radius = ImVec2(radiusX, radiusY);
THIS->AddEllipse(center, radius, col, rot, numSegments, thickness);
*/
public void addEllipseFilled(final ImVec2 center, final ImVec2 radius, final int col) {
nAddEllipseFilled(center.x, center.y, radius.x, radius.y, col);
}
public void addEllipseFilled(final float centerX, final float centerY, final float radiusX, final float radiusY, final int col) {
nAddEllipseFilled(centerX, centerY, radiusX, radiusY, col);
}
public void addEllipseFilled(final ImVec2 center, final ImVec2 radius, final int col, final float rot) {
nAddEllipseFilled(center.x, center.y, radius.x, radius.y, col, rot);
}
public void addEllipseFilled(final float centerX, final float centerY, final float radiusX, final float radiusY, final int col, final float rot) {
nAddEllipseFilled(centerX, centerY, radiusX, radiusY, col, rot);
}
public void addEllipseFilled(final ImVec2 center, final ImVec2 radius, final int col, final float rot, final float numSegments) {
nAddEllipseFilled(center.x, center.y, radius.x, radius.y, col, rot, numSegments);
}
public void addEllipseFilled(final float centerX, final float centerY, final float radiusX, final float radiusY, final int col, final float rot, final float numSegments) {
nAddEllipseFilled(centerX, centerY, radiusX, radiusY, col, rot, numSegments);
}
private native void nAddEllipseFilled(float centerX, float centerY, float radiusX, float radiusY, int col); /*MANUAL
ImVec2 center = ImVec2(centerX, centerY);
ImVec2 radius = ImVec2(radiusX, radiusY);
THIS->AddEllipseFilled(center, radius, col);
*/
private native void nAddEllipseFilled(float centerX, float centerY, float radiusX, float radiusY, int col, float rot); /*MANUAL
ImVec2 center = ImVec2(centerX, centerY);
ImVec2 radius = ImVec2(radiusX, radiusY);
THIS->AddEllipseFilled(center, radius, col, rot);
*/
private native void nAddEllipseFilled(float centerX, float centerY, float radiusX, float radiusY, int col, float rot, float numSegments); /*MANUAL
ImVec2 center = ImVec2(centerX, centerY);
ImVec2 radius = ImVec2(radiusX, radiusY);
THIS->AddEllipseFilled(center, radius, col, rot, numSegments);
*/
public void addText(final ImVec2 pos, final int col, final String textBegin) {
nAddText(pos.x, pos.y, col, textBegin);
}
@@ -755,38 +866,6 @@ public final class ImDrawList extends ImGuiStruct {
if (textEnd != NULL) env->ReleaseStringUTFChars(obj_textEnd, textEnd);
*/
public void addPolyline(final ImVec2[] points, final int numPoint, final int col, final int imDrawFlags, final float thickness) {
nAddPolyline(points, numPoint, col, imDrawFlags, thickness);
}
private native void nAddPolyline(ImVec2[] obj_points, int numPoint, int col, int imDrawFlags, float thickness); /*MANUAL
int pointsLength = env->GetArrayLength(obj_points);
ImVec2 points[pointsLength];
for (int i = 0; i < pointsLength; i++) {
jobject src = env->GetObjectArrayElement(obj_points, i);
ImVec2 dst;
Jni::ImVec2Cpy(env, src, &dst);
points[i] = dst;
};
THIS->AddPolyline(points, numPoint, col, imDrawFlags, thickness);
*/
public void addConvexPolyFilled(final ImVec2[] points, final int numPoints, final int col) {
nAddConvexPolyFilled(points, numPoints, col);
}
private native void nAddConvexPolyFilled(ImVec2[] obj_points, int numPoints, int col); /*MANUAL
int pointsLength = env->GetArrayLength(obj_points);
ImVec2 points[pointsLength];
for (int i = 0; i < pointsLength; i++) {
jobject src = env->GetObjectArrayElement(obj_points, i);
ImVec2 dst;
Jni::ImVec2Cpy(env, src, &dst);
points[i] = dst;
};
THIS->AddConvexPolyFilled(points, numPoints, col);
*/
/**
* Cubic Bezier (4 control points)
*/
@@ -873,6 +952,58 @@ public final class ImDrawList extends ImGuiStruct {
THIS->AddBezierQuadratic(p1, p2, p3, col, thickness, numSegments);
*/
// General polygon
// - Only simple polygons are supported by filling functions (no self-intersections, no holes).
// - Concave polygon fill is more expensive than convex one: it has O(N^2) complexity. Provided as a convenience fo user but not used by main library.
public void addPolyline(final ImVec2[] points, final int numPoints, final int col, final int imDrawFlags, final float thickness) {
nAddPolyline(points, numPoints, col, imDrawFlags, thickness);
}
private native void nAddPolyline(ImVec2[] obj_points, int numPoints, int col, int imDrawFlags, float thickness); /*MANUAL
int pointsLength = env->GetArrayLength(obj_points);
ImVec2 points[pointsLength];
for (int i = 0; i < pointsLength; i++) {
jobject src = env->GetObjectArrayElement(obj_points, i);
ImVec2 dst;
Jni::ImVec2Cpy(env, src, &dst);
points[i] = dst;
};
THIS->AddPolyline(points, numPoints, col, imDrawFlags, thickness);
*/
public void addConvexPolyFilled(final ImVec2[] points, final int numPoints, final int col) {
nAddConvexPolyFilled(points, numPoints, col);
}
private native void nAddConvexPolyFilled(ImVec2[] obj_points, int numPoints, int col); /*MANUAL
int pointsLength = env->GetArrayLength(obj_points);
ImVec2 points[pointsLength];
for (int i = 0; i < pointsLength; i++) {
jobject src = env->GetObjectArrayElement(obj_points, i);
ImVec2 dst;
Jni::ImVec2Cpy(env, src, &dst);
points[i] = dst;
};
THIS->AddConvexPolyFilled(points, numPoints, col);
*/
public void addConcavePolyFilled(final ImVec2[] points, final int numPoints, final int col) {
nAddConcavePolyFilled(points, numPoints, col);
}
private native void nAddConcavePolyFilled(ImVec2[] obj_points, int numPoints, int col); /*MANUAL
int pointsLength = env->GetArrayLength(obj_points);
ImVec2 points[pointsLength];
for (int i = 0; i < pointsLength; i++) {
jobject src = env->GetObjectArrayElement(obj_points, i);
ImVec2 dst;
Jni::ImVec2Cpy(env, src, &dst);
points[i] = dst;
};
THIS->AddConcavePolyFilled(points, numPoints, col);
*/
// Image primitives
// - Read FAQ to understand what ImTextureID is.
// - "pMin" and "pMax" represent the upper-left and lower-right corners of the rectangle.
@@ -1082,7 +1213,8 @@ public final class ImDrawList extends ImGuiStruct {
*/
// Stateful path API, add points then finish with PathFillConvex() or PathStroke()
// - Filled shapes must always use clockwise winding order. The anti-aliasing fringe depends on it. Counter-clockwise shapes will have "inward" anti-aliasing.
// - Important: filled shapes must always use clockwise winding order! The anti-aliasing fringe depends on it. Counter-clockwise shapes will have "inward" anti-aliasing.
// so e.g. 'PathArcTo(center, radius, PI * -0.5f, PI)' is ok, whereas 'PathArcTo(center, radius, PI, PI * -0.5f)' won't have correct anti-aliasing when followed by PathFillConvex().
public void pathClear() {
nPathClear();
@@ -1129,6 +1261,14 @@ public final class ImDrawList extends ImGuiStruct {
THIS->PathFillConvex(col);
*/
public void pathFillConcave(final int col) {
nPathFillConcave(col);
}
private native void nPathFillConcave(int col); /*
THIS->PathFillConcave(col);
*/
public void pathStroke(final int col) {
nPathStroke(col);
}
@@ -1206,6 +1346,34 @@ public final class ImDrawList extends ImGuiStruct {
THIS->PathArcToFast(center, radius, aMinOf12, aMaxOf12);
*/
public void pathEllipticalArcTo(final ImVec2 center, final ImVec2 radius, final float rot, final float aMin, final float aMax) {
nPathEllipticalArcTo(center.x, center.y, radius.x, radius.y, rot, aMin, aMax);
}
public void pathEllipticalArcTo(final float centerX, final float centerY, final float radiusX, final float radiusY, final float rot, final float aMin, final float aMax) {
nPathEllipticalArcTo(centerX, centerY, radiusX, radiusY, rot, aMin, aMax);
}
public void pathEllipticalArcTo(final ImVec2 center, final ImVec2 radius, final float rot, final float aMin, final float aMax, final int numSegments) {
nPathEllipticalArcTo(center.x, center.y, radius.x, radius.y, rot, aMin, aMax, numSegments);
}
public void pathEllipticalArcTo(final float centerX, final float centerY, final float radiusX, final float radiusY, final float rot, final float aMin, final float aMax, final int numSegments) {
nPathEllipticalArcTo(centerX, centerY, radiusX, radiusY, rot, aMin, aMax, numSegments);
}
private native void nPathEllipticalArcTo(float centerX, float centerY, float radiusX, float radiusY, float rot, float aMin, float aMax); /*MANUAL
ImVec2 center = ImVec2(centerX, centerY);
ImVec2 radius = ImVec2(radiusX, radiusY);
THIS->PathEllipticalArcTo(center, radius, rot, aMin, aMax);
*/
private native void nPathEllipticalArcTo(float centerX, float centerY, float radiusX, float radiusY, float rot, float aMin, float aMax, int numSegments); /*MANUAL
ImVec2 center = ImVec2(centerX, centerY);
ImVec2 radius = ImVec2(radiusX, radiusY);
THIS->PathEllipticalArcTo(center, radius, rot, aMin, aMax, numSegments);
*/
/**
* Cubic Bezier (4 control points)
*/
@@ -200,61 +200,61 @@ public final class ImFontAtlas extends ImGuiStructDestroyable {
* Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas.
* Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed.
*/
public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontSize, final float sizePixels) {
return new ImFont(nAddFontFromMemoryTTF(fontData, fontSize, sizePixels));
public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontDataSize, final float sizePixels) {
return new ImFont(nAddFontFromMemoryTTF(fontData, fontDataSize, sizePixels));
}
/**
* Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas.
* Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed.
*/
public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontSize, final float sizePixels, final ImFontConfig fontConfig) {
return new ImFont(nAddFontFromMemoryTTF(fontData, fontSize, sizePixels, fontConfig.ptr));
public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontDataSize, final float sizePixels, final ImFontConfig fontConfig) {
return new ImFont(nAddFontFromMemoryTTF(fontData, fontDataSize, sizePixels, fontConfig.ptr));
}
/**
* Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas.
* Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed.
*/
public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontSize, final float sizePixels, final ImFontConfig fontConfig, final short[] glyphRanges) {
return new ImFont(nAddFontFromMemoryTTF(fontData, fontSize, sizePixels, fontConfig.ptr, glyphRanges));
public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontDataSize, final float sizePixels, final ImFontConfig fontConfig, final short[] glyphRanges) {
return new ImFont(nAddFontFromMemoryTTF(fontData, fontDataSize, sizePixels, fontConfig.ptr, glyphRanges));
}
/**
* Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas.
* Set font_cfg.FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed.
*/
public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontSize, final float sizePixels, final short[] glyphRanges) {
return new ImFont(nAddFontFromMemoryTTF(fontData, fontSize, sizePixels, glyphRanges));
public ImFont addFontFromMemoryTTF(final byte[] fontData, final int fontDataSize, final float sizePixels, final short[] glyphRanges) {
return new ImFont(nAddFontFromMemoryTTF(fontData, fontDataSize, sizePixels, glyphRanges));
}
private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontSize, float sizePixels); /*MANUAL
private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontDataSize, float sizePixels); /*MANUAL
auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE);
auto _result = (uintptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels);
auto _result = (uintptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontDataSize, sizePixels);
if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE);
return _result;
*/
private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontSize, float sizePixels, long fontConfig); /*MANUAL
private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontDataSize, float sizePixels, long fontConfig); /*MANUAL
auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE);
auto _result = (uintptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels, reinterpret_cast<ImFontConfig*>(fontConfig));
auto _result = (uintptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontDataSize, sizePixels, reinterpret_cast<ImFontConfig*>(fontConfig));
if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE);
return _result;
*/
private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontSize, float sizePixels, long fontConfig, short[] obj_glyphRanges); /*MANUAL
private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontDataSize, float sizePixels, long fontConfig, short[] obj_glyphRanges); /*MANUAL
auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE);
auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE);
auto _result = (uintptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels, reinterpret_cast<ImFontConfig*>(fontConfig), (ImWchar*)&glyphRanges[0]);
auto _result = (uintptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontDataSize, sizePixels, reinterpret_cast<ImFontConfig*>(fontConfig), (ImWchar*)&glyphRanges[0]);
if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE);
if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE);
return _result;
*/
private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontSize, float sizePixels, short[] obj_glyphRanges); /*MANUAL
private native long nAddFontFromMemoryTTF(byte[] obj_fontData, int fontDataSize, float sizePixels, short[] obj_glyphRanges); /*MANUAL
auto fontData = obj_fontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_fontData, JNI_FALSE);
auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE);
auto _result = (uintptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontSize, sizePixels, NULL, (ImWchar*)&glyphRanges[0]);
auto _result = (uintptr_t)THIS->AddFontFromMemoryTTF(&fontData[0], fontDataSize, sizePixels, NULL, (ImWchar*)&glyphRanges[0]);
if (fontData != NULL) env->ReleasePrimitiveArrayCritical(obj_fontData, fontData, JNI_FALSE);
if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE);
return _result;
@@ -323,58 +323,58 @@ public final class ImFontAtlas extends ImGuiStructDestroyable {
/**
* 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp.
*/
public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontSize, final float sizePixels) {
return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontSize, sizePixels));
public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontDataSize, final float sizePixels) {
return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontDataSize, sizePixels));
}
/**
* 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp.
*/
public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontSize, final float sizePixels, final ImFontConfig imFontConfig) {
return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontSize, sizePixels, imFontConfig.ptr));
public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontDataSize, final float sizePixels, final ImFontConfig imFontConfig) {
return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontDataSize, sizePixels, imFontConfig.ptr));
}
/**
* 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp.
*/
public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontSize, final float sizePixels, final ImFontConfig imFontConfig, final short[] glyphRanges) {
return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontSize, sizePixels, imFontConfig.ptr, glyphRanges));
public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontDataSize, final float sizePixels, final ImFontConfig imFontConfig, final short[] glyphRanges) {
return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontDataSize, sizePixels, imFontConfig.ptr, glyphRanges));
}
/**
* 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp.
*/
public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontSize, final float sizePixels, final short[] glyphRanges) {
return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontSize, sizePixels, glyphRanges));
public ImFont addFontFromMemoryCompressedTTF(final byte[] compressedFontData, final int compressedFontDataSize, final float sizePixels, final short[] glyphRanges) {
return new ImFont(nAddFontFromMemoryCompressedTTF(compressedFontData, compressedFontDataSize, sizePixels, glyphRanges));
}
private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontSize, float sizePixels); /*MANUAL
private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontDataSize, float sizePixels); /*MANUAL
auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE);
auto _result = (uintptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontSize, sizePixels);
auto _result = (uintptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontDataSize, sizePixels);
if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE);
return _result;
*/
private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontSize, float sizePixels, long imFontConfig); /*MANUAL
private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontDataSize, float sizePixels, long imFontConfig); /*MANUAL
auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE);
auto _result = (uintptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontSize, sizePixels, reinterpret_cast<ImFontConfig*>(imFontConfig));
auto _result = (uintptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontDataSize, sizePixels, reinterpret_cast<ImFontConfig*>(imFontConfig));
if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE);
return _result;
*/
private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontSize, float sizePixels, long imFontConfig, short[] obj_glyphRanges); /*MANUAL
private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontDataSize, float sizePixels, long imFontConfig, short[] obj_glyphRanges); /*MANUAL
auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE);
auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE);
auto _result = (uintptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontSize, sizePixels, reinterpret_cast<ImFontConfig*>(imFontConfig), (ImWchar*)&glyphRanges[0]);
auto _result = (uintptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontDataSize, sizePixels, reinterpret_cast<ImFontConfig*>(imFontConfig), (ImWchar*)&glyphRanges[0]);
if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE);
if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE);
return _result;
*/
private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontSize, float sizePixels, short[] obj_glyphRanges); /*MANUAL
private native long nAddFontFromMemoryCompressedTTF(byte[] obj_compressedFontData, int compressedFontDataSize, float sizePixels, short[] obj_glyphRanges); /*MANUAL
auto compressedFontData = obj_compressedFontData == NULL ? NULL : (char*)env->GetPrimitiveArrayCritical(obj_compressedFontData, JNI_FALSE);
auto glyphRanges = obj_glyphRanges == NULL ? NULL : (short*)env->GetPrimitiveArrayCritical(obj_glyphRanges, JNI_FALSE);
auto _result = (uintptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontSize, sizePixels, NULL, (ImWchar*)&glyphRanges[0]);
auto _result = (uintptr_t)THIS->AddFontFromMemoryCompressedTTF(&compressedFontData[0], compressedFontDataSize, sizePixels, NULL, (ImWchar*)&glyphRanges[0]);
if (compressedFontData != NULL) env->ReleasePrimitiveArrayCritical(obj_compressedFontData, compressedFontData, JNI_FALSE);
if (glyphRanges != NULL) env->ReleasePrimitiveArrayCritical(obj_glyphRanges, glyphRanges, JNI_FALSE);
return _result;
@@ -674,11 +674,12 @@ public final class ImFontAtlas extends ImGuiStructDestroyable {
//-------------------------------------------
// You can request arbitrary rectangles to be packed into the atlas, for your own purposes.
// After calling Build(), you can query the rectangle position and render your pixels.
// You can also request your rectangles to be mapped as font glyph (given a font + Unicode point),
// so you can render e.g. custom colorful icons and use them as regular glyphs.
// Read docs/FONTS.md for more details about using colorful icons.
// Note: this API may be redesigned later in order to support multi-monitor varying DPI settings.
// - After calling Build(), you can query the rectangle position and render your pixels.
// - If you render colored output, set 'atlas->TexPixelsUseColors = true' as this may help some backends decide of preferred texture format.
// - You can also request your rectangles to be mapped as font glyph (given a font + Unicode point),
// so you can render e.g. custom colorful icons and use them as regular glyphs.
// - Read docs/FONTS.md for more details about using colorful icons.
// - Note: this API may be redesigned later in order to support multi-monitor varying DPI settings.
public int addCustomRectRegular(final int width, final int height) {
return nAddCustomRectRegular(width, height);
@@ -484,6 +484,28 @@ public final class ImFontConfig extends ImGuiStructDestroyable {
THIS->RasterizerMultiply = value;
*/
/**
* DPI scale for rasterization, not altering other font metrics: make it easy to swap between e.g. a 100% and a 400% fonts for a zooming display. IMPORTANT: If you increase this it is expected that you increase font scale accordingly, otherwise quality may look lowered.
*/
public float getRasterizerDensity() {
return nGetRasterizerDensity();
}
/**
* DPI scale for rasterization, not altering other font metrics: make it easy to swap between e.g. a 100% and a 400% fonts for a zooming display. IMPORTANT: If you increase this it is expected that you increase font scale accordingly, otherwise quality may look lowered.
*/
public void setRasterizerDensity(final float value) {
nSetRasterizerDensity(value);
}
private native float nGetRasterizerDensity(); /*
return THIS->RasterizerDensity;
*/
private native void nSetRasterizerDensity(float value); /*
THIS->RasterizerDensity = value;
*/
/**
* Explicitly specify unicode codepoint of ellipsis character. When fonts are being merged first specified ellipsis will be used.
*/
File diff suppressed because it is too large. Load diff
@@ -916,6 +916,34 @@ public final class ImGuiIO extends ImGuiStruct {
// Debug options
//------------------------------------------------------------------
/**
* Option to enable various debug tools showing buttons that will call the IM_DEBUG_BREAK() macro.
* - The Item Picker tool will be available regardless of this being enabled, in order to maximize its discoverability.
* - Requires a debugger being attached, otherwise IM_DEBUG_BREAK() options will appear to crash your application.
* e.g. io.ConfigDebugIsDebuggerPresent = ::IsDebuggerPresent() on Win32, or refer to ImOsIsDebuggerPresent() imgui_test_engine/imgui_te_utils.cpp for a Unix compatible version).
*/
public boolean getConfigDebugIsDebuggerPresent() {
return nGetConfigDebugIsDebuggerPresent();
}
/**
* Option to enable various debug tools showing buttons that will call the IM_DEBUG_BREAK() macro.
* - The Item Picker tool will be available regardless of this being enabled, in order to maximize its discoverability.
* - Requires a debugger being attached, otherwise IM_DEBUG_BREAK() options will appear to crash your application.
* e.g. io.ConfigDebugIsDebuggerPresent = ::IsDebuggerPresent() on Win32, or refer to ImOsIsDebuggerPresent() imgui_test_engine/imgui_te_utils.cpp for a Unix compatible version).
*/
public void setConfigDebugIsDebuggerPresent(final boolean value) {
nSetConfigDebugIsDebuggerPresent(value);
}
private native boolean nGetConfigDebugIsDebuggerPresent(); /*
return THIS->ConfigDebugIsDebuggerPresent;
*/
private native void nSetConfigDebugIsDebuggerPresent(boolean value); /*
THIS->ConfigDebugIsDebuggerPresent = value;
*/
/**
* Tools to test correct Begin/End and BeginChild/EndChild behaviors.
* Presently Begin()/End() and BeginChild()/EndChild() needs to ALWAYS be called in tandem, regardless of return value of BeginXXX()
@@ -1301,6 +1329,28 @@ public final class ImGuiIO extends ImGuiStruct {
THIS->ClearEventsQueue();
*/
/**
* Clear current keyboard/gamepad state + current frame text input buffer. Equivalent to releasing all keys/buttons.
*/
public void clearInputKeys() {
nClearInputKeys();
}
private native void nClearInputKeys(); /*
THIS->ClearInputKeys();
*/
/**
* Clear current mouse state.
*/
public void clearInputMouse() {
nClearInputMouse();
}
private native void nClearInputMouse(); /*
THIS->ClearInputMouse();
*/
//------------------------------------------------------------------
// Output - Updated by NewFrame() or EndFrame()/Render()
// (when reading from the io.WantCaptureMouse, io.WantCaptureKeyboard flags to dispatch your inputs, it is
@@ -1589,28 +1639,6 @@ public final class ImGuiIO extends ImGuiStruct {
THIS->MetricsActiveWindows = value;
*/
/**
* Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts.
*/
public int getMetricsActiveAllocations() {
return nGetMetricsActiveAllocations();
}
/**
* Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts.
*/
public void setMetricsActiveAllocations(final int value) {
nSetMetricsActiveAllocations(value);
}
private native int nGetMetricsActiveAllocations(); /*
return THIS->MetricsActiveAllocations;
*/
private native void nSetMetricsActiveAllocations(int value); /*
THIS->MetricsActiveAllocations = value;
*/
/**
* Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta.
*/
@@ -1672,176 +1700,6 @@ public final class ImGuiIO extends ImGuiStruct {
THIS->MouseDelta = value;
*/
/**
* Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state.
*/
@Deprecated
public int[] getKeyMap() {
return nGetKeyMap();
}
/**
* Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state.
*/
@Deprecated
public int getKeyMap(final int idx) {
return nGetKeyMap(idx);
}
/**
* Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state.
*/
@Deprecated
public void setKeyMap(final int[] value) {
nSetKeyMap(value);
}
/**
* Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state.
*/
@Deprecated
public void setKeyMap(final int idx, final int value) {
nSetKeyMap(idx, value);
}
@Deprecated
private native int[] nGetKeyMap(); /*
jint jBuf[ImGuiKey_COUNT];
for (int i = 0; i < ImGuiKey_COUNT; i++)
jBuf[i] = THIS->KeyMap[i];
jintArray result = env->NewIntArray(ImGuiKey_COUNT);
env->SetIntArrayRegion(result, 0, ImGuiKey_COUNT, jBuf);
return result;
*/
@Deprecated
private native int nGetKeyMap(int idx); /*
return THIS->KeyMap[idx];
*/
@Deprecated
private native void nSetKeyMap(int[] value); /*
for (int i = 0; i < ImGuiKey_COUNT; i++)
THIS->KeyMap[i] = value[i];
*/
@Deprecated
private native void nSetKeyMap(int idx, int value); /*
THIS->KeyMap[idx] = value;
*/
/**
* Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys).
* This used to be [512] sized. It is now ImGuiKey_COUNT to allow legacy io.KeysDown[GetKeyIndex(...)] to work without an overflow.
*/
@Deprecated
public boolean[] getKeysDown() {
return nGetKeysDown();
}
/**
* Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys).
* This used to be [512] sized. It is now ImGuiKey_COUNT to allow legacy io.KeysDown[GetKeyIndex(...)] to work without an overflow.
*/
@Deprecated
public boolean getKeysDown(final int idx) {
return nGetKeysDown(idx);
}
/**
* Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys).
* This used to be [512] sized. It is now ImGuiKey_COUNT to allow legacy io.KeysDown[GetKeyIndex(...)] to work without an overflow.
*/
@Deprecated
public void setKeysDown(final boolean[] value) {
nSetKeysDown(value);
}
/**
* Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys).
* This used to be [512] sized. It is now ImGuiKey_COUNT to allow legacy io.KeysDown[GetKeyIndex(...)] to work without an overflow.
*/
@Deprecated
public void setKeysDown(final int idx, final boolean value) {
nSetKeysDown(idx, value);
}
@Deprecated
private native boolean[] nGetKeysDown(); /*
jboolean jBuf[ImGuiKey_COUNT];
for (int i = 0; i < ImGuiKey_COUNT; i++)
jBuf[i] = THIS->KeysDown[i];
jbooleanArray result = env->NewBooleanArray(ImGuiKey_COUNT);
env->SetBooleanArrayRegion(result, 0, ImGuiKey_COUNT, jBuf);
return result;
*/
@Deprecated
private native boolean nGetKeysDown(int idx); /*
return THIS->KeysDown[idx];
*/
@Deprecated
private native void nSetKeysDown(boolean[] value); /*
for (int i = 0; i < ImGuiKey_COUNT; i++)
THIS->KeysDown[i] = value[i];
*/
@Deprecated
private native void nSetKeysDown(int idx, boolean value); /*
THIS->KeysDown[idx] = value;
*/
/**
* Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame().
*/
public float[] getNavInputs() {
return nGetNavInputs();
}
/**
* Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame().
*/
public float getNavInputs(final int idx) {
return nGetNavInputs(idx);
}
/**
* Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame().
*/
public void setNavInputs(final float[] value) {
nSetNavInputs(value);
}
/**
* Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame().
*/
public void setNavInputs(final int idx, final float value) {
nSetNavInputs(idx, value);
}
private native float[] nGetNavInputs(); /*
jfloat jBuf[512];
for (int i = 0; i < 512; i++)
jBuf[i] = THIS->NavInputs[i];
jfloatArray result = env->NewFloatArray(512);
env->SetFloatArrayRegion(result, 0, 512, jBuf);
return result;
*/
private native float nGetNavInputs(int idx); /*
return THIS->NavInputs[idx];
*/
private native void nSetNavInputs(float[] value); /*
for (int i = 0; i < 512; i++)
THIS->NavInputs[i] = value[i];
*/
private native void nSetNavInputs(int idx, float value); /*
THIS->NavInputs[idx] = value;
*/
//------------------------------------------------------------------
// [Internal] Dear ImGui will maintain those fields. Forward compatibility not guaranteed!
//------------------------------------------------------------------
@@ -2719,6 +2577,28 @@ public final class ImGuiIO extends ImGuiStruct {
THIS->MouseWheelRequestAxisSwap = value;
*/
/**
* (OSX) Set to true when the current click was a ctrl-click that spawned a simulated right click.
*/
public boolean getMouseCtrlLeftAsRightClick() {
return nGetMouseCtrlLeftAsRightClick();
}
/**
* (OSX) Set to true when the current click was a ctrl-click that spawned a simulated right click.
*/
public void setMouseCtrlLeftAsRightClick(final boolean value) {
nSetMouseCtrlLeftAsRightClick(value);
}
private native boolean nGetMouseCtrlLeftAsRightClick(); /*
return THIS->MouseCtrlLeftAsRightClick;
*/
private native void nSetMouseCtrlLeftAsRightClick(boolean value); /*
THIS->MouseCtrlLeftAsRightClick = value;
*/
/**
* Duration the mouse button has been down (0.0f == just clicked)
*/
@@ -119,17 +119,6 @@ public final class ImGuiStorage extends ImGuiStructDestroyable {
THIS->SetFloat(key, val);
*/
/**
* Use on your own storage if you know only integer are being stored (open/close all tree nodes)
*/
public void setAllInt(final int val) {
nSetAllInt(val);
}
private native void nSetAllInt(int val); /*
THIS->SetAllInt(val);
*/
/**
* For quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once.
*/
@@ -141,6 +130,17 @@ public final class ImGuiStorage extends ImGuiStructDestroyable {
THIS->BuildSortByKey();
*/
/**
* Use on your own storage if you know only integer are being stored (open/close all tree nodes)
*/
public void setAllInt(final int val) {
nSetAllInt(val);
}
private native void nSetAllInt(int val); /*
THIS->SetAllInt(val);
*/
/*JNI
#undef THIS
*/
@@ -322,7 +322,7 @@ public final class ImGuiStyle extends ImGuiStructDestroyable {
*/
private native void nSetWindowMenuButtonPosition(int value); /*
THIS->WindowMenuButtonPosition = value;
THIS->WindowMenuButtonPosition = static_cast<ImGuiDir>(value);
*/
/**
@@ -1009,7 +1009,7 @@ public final class ImGuiStyle extends ImGuiStructDestroyable {
*/
private native void nSetColorButtonPosition(int value); /*
THIS->ColorButtonPosition = value;
THIS->ColorButtonPosition = static_cast<ImGuiDir>(value);
*/
/**
@@ -80,6 +80,28 @@ public final class ImGuiWindowClass extends ImGuiStructDestroyable {
THIS->ParentViewportId = value;
*/
/**
* ID of parent window for shortcut focus route evaluation, e.g. Shortcut() call from Parent Window will succeed when this window is focused.
*/
public int getFocusRouteParentWindowId() {
return nGetFocusRouteParentWindowId();
}
/**
* ID of parent window for shortcut focus route evaluation, e.g. Shortcut() call from Parent Window will succeed when this window is focused.
*/
public void setFocusRouteParentWindowId(final int value) {
nSetFocusRouteParentWindowId(value);
}
private native int nGetFocusRouteParentWindowId(); /*
return THIS->FocusRouteParentWindowId;
*/
private native void nSetFocusRouteParentWindowId(int value); /*
THIS->FocusRouteParentWindowId = value;
*/
/**
* Viewport flags to set when a window of this class owns a viewport.
* This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis.
@@ -55,32 +55,25 @@ public final class ImPlotFlags {
public static final int NoBoxSelect = 32;
/**
* a child window region will not be used to capture mouse scroll (can boost performance for single ImGui window applications)
* the ImGui frame will not be rendered
*
* <p>Definition: {@code 1 << 6}
*/
public static final int NoChild = 64;
/**
* the ImGui frame will not be rendered
*
* <p>Definition: {@code 1 << 7}
*/
public static final int NoFrame = 128;
public static final int NoFrame = 64;
/**
* x and y axes pairs will be constrained to have the same units/pixel
*
* <p>Definition: {@code 1 << 8}
* <p>Definition: {@code 1 << 7}
*/
public static final int Equal = 256;
public static final int Equal = 128;
/**
* the default mouse cursor will be replaced with a crosshair when hovered
*
* <p>Definition: {@code 1 << 9}
* <p>Definition: {@code 1 << 8}
*/
public static final int Crosshairs = 512;
public static final int Crosshairs = 256;
/**
* Definition: {@code ImPlotFlags_NoTitle | ImPlotFlags_NoLegend | ImPlotFlags_NoMenus | ImPlotFlags_NoBoxSelect | ImPlotFlags_NoMouseText}
@@ -18,4 +18,11 @@ public final class ImPlotPieChartFlags {
* <p>Definition: {@code 1 << 10}
*/
public static final int Normalize = 1024;
/**
* ignore hidden slices when drawing the pie chart (as if they were not there)
*
* <p>Definition: {@code 1 << 11}
*/
public static final int IgnoreHidden = 2048;
}
@@ -37,11 +37,4 @@ public final class ImGuiButtonFlags {
* <p>Definition: {@code ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle}
*/
public static final int MouseButtonMask_ = 7;
/**
* [Internal]
*
* <p>Definition: {@code ImGuiButtonFlags_MouseButtonLeft}
*/
public static final int MouseButtonDefault_ = 1;
}
@@ -0,0 +1,86 @@
package imgui.flag;
/**
* Flags for ImGui::BeginChild()
* (Legacy: bit 0 must always correspond to ImGuiChildFlags_Border to be backward compatible with old API using 'bool border = false'.
* About using AutoResizeX/AutoResizeY flags:
* - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see {@code Demo->Child->Auto-resize with Constraints}).
* - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing.
* - This allows BeginChild() to return false when not within boundaries (e.g. when scrolling), which is more optimal. BUT it won't update its auto-size while clipped.
* While not perfect, it is a better default behavior as the always-on performance gain is more valuable than the occasional "resizing after becoming visible again" glitch.
* - You may also use ImGuiChildFlags_AlwaysAutoResize to force an update even when child window is not in view.
* HOWEVER PLEASE UNDERSTAND THAT DOING SO WILL PREVENT BeginChild() FROM EVER RETURNING FALSE, disabling benefits of coarse clipping.
*/
public final class ImGuiChildFlags {
private ImGuiChildFlags() {
}
/**
* Definition: {@code 0}
*/
public static final int None = 0;
/**
* Show an outer border and enable WindowPadding. (IMPORTANT: this is always == 1 == true for legacy reason)
*
* <p>Definition: {@code 1 << 0}
*/
public static final int Border = 1;
/**
* Pad with style.WindowPadding even if no border are drawn (no padding by default for non-bordered child windows because it makes more sense)
*
* <p>Definition: {@code 1 << 1}
*/
public static final int AlwaysUseWindowPadding = 2;
/**
* Allow resize from right border (layout direction). Enable .ini saving (unless ImGuiWindowFlags_NoSavedSettings passed to window flags)
*
* <p>Definition: {@code 1 << 2}
*/
public static final int ResizeX = 4;
/**
* Allow resize from bottom border (layout direction). "
*
* <p>Definition: {@code 1 << 3}
*/
public static final int ResizeY = 8;
/**
* Enable auto-resizing width. Read "IMPORTANT: Size measurement" details above.
*
* <p>Definition: {@code 1 << 4}
*/
public static final int AutoResizeX = 16;
/**
* Enable auto-resizing height. Read "IMPORTANT: Size measurement" details above.
*
* <p>Definition: {@code 1 << 5}
*/
public static final int AutoResizeY = 32;
/**
* Combined with AutoResizeX/AutoResizeY. Always measure size even when child is hidden, always return true, always disable clipping optimization! NOT RECOMMENDED.
*
* <p>Definition: {@code 1 << 6}
*/
public static final int AlwaysAutoResize = 64;
/**
* Style the child window like a framed item: use FrameBg, FrameRounding, FrameBorderSize, FramePadding instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding.
*
* <p>Definition: {@code 1 << 7}
*/
public static final int FrameStyle = 128;
/**
* Share focus scope, allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows.
*
* <p>Definition: {@code 1 << 8}
*/
public static final int NavFlattened = 256;
}
@@ -40,10 +40,19 @@ public final class ImGuiCol {
public static final int FrameBgActive = 9;
/**
* Title bar
*/
public static final int TitleBg = 10;
/**
* Title bar when focused
*/
public static final int TitleBgActive = 11;
/**
* Title bar when collapsed
*/
public static final int TitleBgCollapsed = 12;
public static final int MenuBarBg = 13;
@@ -56,6 +65,9 @@ public final class ImGuiCol {
public static final int ScrollbarGrabActive = 17;
/**
* Checkbox tick and RadioButton circle
*/
public static final int CheckMark = 18;
public static final int SliderGrab = 19;
@@ -93,87 +105,130 @@ public final class ImGuiCol {
public static final int ResizeGripActive = 32;
/**
* TabItem in a TabBar
* Tab background, when hovered
*/
public static final int Tab = 33;
public static final int TabHovered = 33;
public static final int TabHovered = 34;
/**
* Tab background, when tab-bar is focused {@code &} tab is unselected
*/
public static final int Tab = 34;
public static final int TabActive = 35;
/**
* Tab background, when tab-bar is focused {@code &} tab is selected
*/
public static final int TabSelected = 35;
public static final int TabUnfocused = 36;
/**
* Tab horizontal overline, when tab-bar is focused {@code &} tab is selected
*/
public static final int TabSelectedOverline = 36;
public static final int TabUnfocusedActive = 37;
/**
* Tab background, when tab-bar is unfocused {@code &} tab is unselected
*/
public static final int TabDimmed = 37;
/**
* Tab background, when tab-bar is unfocused {@code &} tab is selected
*/
public static final int TabDimmedSelected = 38;
/**
* ..horizontal overline, when tab-bar is unfocused {@code &} tab is selected
*/
public static final int TabDimmedSelectedOverline = 39;
/**
* Preview overlay color when about to docking something
*/
public static final int DockingPreview = 38;
public static final int DockingPreview = 40;
/**
* Background color for empty node (e.g. CentralNode with no window docked into it)
*/
public static final int DockingEmptyBg = 39;
public static final int DockingEmptyBg = 41;
public static final int PlotLines = 40;
public static final int PlotLines = 42;
public static final int PlotLinesHovered = 41;
public static final int PlotLinesHovered = 43;
public static final int PlotHistogram = 42;
public static final int PlotHistogram = 44;
public static final int PlotHistogramHovered = 43;
public static final int PlotHistogramHovered = 45;
/**
* Table header background
*/
public static final int TableHeaderBg = 44;
public static final int TableHeaderBg = 46;
/**
* Table outer and header borders (prefer using Alpha=1.0 here)
*/
public static final int TableBorderStrong = 45;
public static final int TableBorderStrong = 47;
/**
* Table inner borders (prefer using Alpha=1.0 here)
*/
public static final int TableBorderLight = 46;
public static final int TableBorderLight = 48;
/**
* Table row background (even rows)
*/
public static final int TableRowBg = 47;
public static final int TableRowBg = 49;
/**
* Table row background (odd rows)
*/
public static final int TableRowBgAlt = 48;
public static final int TableRowBgAlt = 50;
public static final int TextSelectedBg = 49;
public static final int TextSelectedBg = 51;
/**
* Rectangle highlighting a drop target
*/
public static final int DragDropTarget = 50;
public static final int DragDropTarget = 52;
/**
* Gamepad/keyboard: current highlighted item
*/
public static final int NavHighlight = 51;
public static final int NavHighlight = 53;
/**
* Highlight window when using CTRL+TAB
*/
public static final int NavWindowingHighlight = 52;
public static final int NavWindowingHighlight = 54;
/**
* Darken/colorize entire screen behind the CTRL+TAB window list, when active
*/
public static final int NavWindowingDimBg = 53;
public static final int NavWindowingDimBg = 55;
/**
* Darken/colorize entire screen behind a modal window, when one is active
*/
public static final int ModalWindowDimBg = 54;
public static final int ModalWindowDimBg = 56;
public static final int COUNT = 55;
public static final int COUNT = 57;
/**
* [renamed in 1.90.9]
*
* <p>Definition: {@code ImGuiCol_TabSelected}
*/
public static final int TabActive = 35;
/**
* [renamed in 1.90.9]
*
* <p>Definition: {@code ImGuiCol_TabDimmed}
*/
public static final int TabUnfocused = 37;
/**
* [renamed in 1.90.9]
*
* <p>Definition: {@code ImGuiCol_TabDimmedSelected}
*/
public static final int TabUnfocusedActive = 38;
}
@@ -62,6 +62,13 @@ public final class ImGuiComboFlags {
*/
public static final int NoPreview = 64;
/**
* Width dynamically calculated from preview contents
*
* <p>Definition: {@code 1 << 7}
*/
public static final int WidthFitPreview = 128;
/**
* Definition: {@code ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest}
*/
@@ -42,7 +42,7 @@ public final class ImGuiConfigFlags {
public static final int NavNoCaptureKeyboard = 8;
/**
* Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend.
* Instruct dear imgui to disable mouse inputs and interactions.
*
* <p>Definition: {@code 1 << 4}
*/
@@ -56,11 +56,18 @@ public final class ImGuiConfigFlags {
public static final int NoMouseCursorChange = 32;
/**
* Docking enable flags.
* Instruct dear imgui to disable keyboard inputs and interactions. This is done by ignoring keyboard events and clearing existing states.
*
* <p>Definition: {@code 1 << 6}
*/
public static final int DockingEnable = 64;
public static final int NoKeyboard = 64;
/**
* Docking enable flags.
*
* <p>Definition: {@code 1 << 7}
*/
public static final int DockingEnable = 128;
/**
* Viewport enable flags (require both ImGuiBackendFlags_PlatformHasViewports + ImGuiBackendFlags_RendererHasViewports set by the respective backends)
@@ -15,44 +15,65 @@ public final class ImGuiDockNodeFlags {
public static final int None = 0;
/**
* Shared // Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.
* Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.
*
* <p>Definition: {@code 1 << 0}
*/
public static final int KeepAliveOnly = 1;
/**
* Shared // Disable docking inside the Central Node, which will be always kept empty.
* Disable docking over the Central Node, which will be always kept empty.
*
* <p>Definition: {@code 1 << 2}
*/
public static final int NoDockingInCentralNode = 4;
public static final int NoDockingOverCentralNode = 4;
/**
* Shared // Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.
* Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.
*
* <p>Definition: {@code 1 << 3}
*/
public static final int PassthruCentralNode = 8;
/**
* Shared/Local // Disable splitting the node into smaller nodes. Useful e.g. when embedding dockspaces into a main root one (the root one may have splitting disabled to reduce confusion). Note: when turned off, existing splits will be preserved.
* Disable other windows/nodes from splitting this node.
*
* <p>Definition: {@code 1 << 4}
*/
public static final int NoSplit = 16;
public static final int NoDockingSplit = 16;
/**
* Shared/Local // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces.
* Saved // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces.
*
* <p>Definition: {@code 1 << 5}
*/
public static final int NoResize = 32;
/**
* Shared/Local // Tab bar will automatically hide when there is a single window in the dock node.
* Tab bar will automatically hide when there is a single window in the dock node.
*
* <p>Definition: {@code 1 << 6}
*/
public static final int AutoHideTabBar = 64;
/**
* Disable undocking this node.
*
* <p>Definition: {@code 1 << 7}
*/
public static final int NoUndocking = 128;
/**
* Renamed in 1.90
*
* <p>Definition: {@code ImGuiDockNodeFlags_NoDockingSplit}
*/
public static final int NoSplit = 16;
/**
* Renamed in 1.90
*
* <p>Definition: {@code ImGuiDockNodeFlags_NoDockingOverCentralNode}
*/
public static final int NoDockingInCentralNode = 4;
}
@@ -53,7 +53,21 @@ public final class ImGuiDragDropFlags {
*
* <p>Definition: {@code 1 << 5}
*/
public static final int SourceAutoExpirePayload = 32;
public static final int PayloadAutoExpire = 32;
/**
* Hint to specify that the payload may not be copied outside current dear imgui context.
*
* <p>Definition: {@code 1 << 6}
*/
public static final int PayloadNoCrossContext = 64;
/**
* Hint to specify that the payload may not be copied outside current process.
*
* <p>Definition: {@code 1 << 7}
*/
public static final int PayloadNoCrossProcess = 128;
/**
* AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered.
@@ -82,4 +96,11 @@ public final class ImGuiDragDropFlags {
* <p>Definition: {@code ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect}
*/
public static final int AcceptPeekOnly = 3072;
/**
* Renamed in 1.90.9
*
* <p>Definition: {@code ImGuiDragDropFlags_PayloadAutoExpire}
*/
public static final int SourceAutoExpirePayload = 32;
}
@@ -9,7 +9,9 @@ public final class ImGuiInputTextFlags {
}
/**
* Definition: {@code 0}
* Basic filters (also see ImGuiInputTextFlags_CallbackCharFilter)
*
* <p>Definition: {@code 0}
*/
public static final int None = 0;
@@ -28,102 +30,102 @@ public final class ImGuiInputTextFlags {
public static final int CharsHexadecimal = 2;
/**
* Turn a..z into A..Z
* Allow 0123456789.+-* /eE (Scientific notation input)
*
* <p>Definition: {@code 1 << 2}
*/
public static final int CharsUppercase = 4;
public static final int CharsScientific = 4;
/**
* Turn a..z into A..Z
*
* <p>Definition: {@code 1 << 3}
*/
public static final int CharsUppercase = 8;
/**
* Filter out spaces, tabs
*
* <p>Definition: {@code 1 << 3}
*/
public static final int CharsNoBlank = 8;
/**
* Select entire text when first taking mouse focus
*
* <p>Definition: {@code 1 << 4}
*/
public static final int AutoSelectAll = 16;
/**
* Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.
*
* <p>Definition: {@code 1 << 5}
*/
public static final int EnterReturnsTrue = 32;
/**
* Callback on pressing TAB (for completion handling)
*
* <p>Definition: {@code 1 << 6}
*/
public static final int CallbackCompletion = 64;
/**
* Callback on pressing Up/Down arrows (for history handling)
*
* <p>Definition: {@code 1 << 7}
*/
public static final int CallbackHistory = 128;
/**
* Callback on each iteration. User code may query cursor position, modify text buffer.
*
* <p>Definition: {@code 1 << 8}
*/
public static final int CallbackAlways = 256;
/**
* Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
*
* <p>Definition: {@code 1 << 9}
*/
public static final int CallbackCharFilter = 512;
public static final int CharsNoBlank = 16;
/**
* Pressing TAB input a ' ' character into the text field
*
* <p>Definition: {@code 1 << 10}
* <p>Definition: {@code 1 << 5}
*/
public static final int AllowTabInput = 1024;
public static final int AllowTabInput = 32;
/**
* In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter).
* Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.
*
* <p>Definition: {@code 1 << 11}
* <p>Definition: {@code 1 << 6}
*/
public static final int CtrlEnterForNewLine = 2048;
public static final int EnterReturnsTrue = 64;
/**
* Disable following the cursor horizontally
* Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)
*
* <p>Definition: {@code 1 << 12}
* <p>Definition: {@code 1 << 7}
*/
public static final int NoHorizontalScroll = 4096;
public static final int EscapeClearsAll = 128;
/**
* Overwrite mode
* In multi-line mode, validate with Enter, add new line with Ctrl+Enter (default is opposite: validate with Ctrl+Enter, add line with Enter).
*
* <p>Definition: {@code 1 << 13}
* <p>Definition: {@code 1 << 8}
*/
public static final int AlwaysOverwrite = 8192;
public static final int CtrlEnterForNewLine = 256;
/**
* Read-only mode
*
* <p>Definition: {@code 1 << 14}
* <p>Definition: {@code 1 << 9}
*/
public static final int ReadOnly = 16384;
public static final int ReadOnly = 512;
/**
* Password mode, display all characters as '*'
* Password mode, display all characters as '*', disable copy
*
* <p>Definition: {@code 1 << 10}
*/
public static final int Password = 1024;
/**
* Overwrite mode
*
* <p>Definition: {@code 1 << 11}
*/
public static final int AlwaysOverwrite = 2048;
/**
* Select entire text when first taking mouse focus
*
* <p>Definition: {@code 1 << 12}
*/
public static final int AutoSelectAll = 4096;
/**
* InputFloat(), InputInt(), InputScalar() etc. only: parse empty string as zero value.
*
* <p>Definition: {@code 1 << 13}
*/
public static final int ParseEmptyRefVal = 8192;
/**
* InputFloat(), InputInt(), InputScalar() etc. only: when value is zero, do not display it. Generally used with ImGuiInputTextFlags_ParseEmptyRefVal.
*
* <p>Definition: {@code 1 << 14}
*/
public static final int DisplayEmptyRefVal = 16384;
/**
* Disable following the cursor horizontally
*
* <p>Definition: {@code 1 << 15}
*/
public static final int Password = 32768;
public static final int NoHorizontalScroll = 32768;
/**
* Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID().
@@ -133,30 +135,44 @@ public final class ImGuiInputTextFlags {
public static final int NoUndoRedo = 65536;
/**
* Allow 0123456789.+-* /eE (Scientific notation input)
* Callback on pressing TAB (for completion handling)
*
* <p>Definition: {@code 1 << 17}
*/
public static final int CharsScientific = 131072;
public static final int CallbackCompletion = 131072;
/**
* Callback on pressing Up/Down arrows (for history handling)
*
* <p>Definition: {@code 1 << 18}
*/
public static final int CallbackHistory = 262144;
/**
* Callback on each iteration. User code may query cursor position, modify text buffer.
*
* <p>Definition: {@code 1 << 19}
*/
public static final int CallbackAlways = 524288;
/**
* Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
*
* <p>Definition: {@code 1 << 20}
*/
public static final int CallbackCharFilter = 1048576;
/**
* Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)
*
* <p>Definition: {@code 1 << 18}
* <p>Definition: {@code 1 << 21}
*/
public static final int CallbackResize = 262144;
public static final int CallbackResize = 2097152;
/**
* Callback on any edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)
*
* <p>Definition: {@code 1 << 19}
* <p>Definition: {@code 1 << 22}
*/
public static final int CallbackEdit = 524288;
/**
* Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)
*
* <p>Definition: {@code 1 << 20}
*/
public static final int EscapeClearsAll = 1048576;
public static final int CallbackEdit = 4194304;
}
@@ -168,294 +168,325 @@ public final class ImGuiKey {
public static final int F12 = 583;
public static final int F13 = 584;
public static final int F14 = 585;
public static final int F15 = 586;
public static final int F16 = 587;
public static final int F17 = 588;
public static final int F18 = 589;
public static final int F19 = 590;
public static final int F20 = 591;
public static final int F21 = 592;
public static final int F22 = 593;
public static final int F23 = 594;
public static final int F24 = 595;
/**
* '
*/
public static final int Apostrophe = 584;
public static final int Apostrophe = 596;
/**
* ,
*/
public static final int Comma = 585;
public static final int Comma = 597;
/**
* -
*/
public static final int Minus = 586;
public static final int Minus = 598;
/**
* .
*/
public static final int Period = 587;
public static final int Period = 599;
/**
* /
*/
public static final int Slash = 588;
public static final int Slash = 600;
/**
* ;
*/
public static final int Semicolon = 589;
public static final int Semicolon = 601;
/**
* =
*/
public static final int Equal = 590;
public static final int Equal = 602;
/**
* [
*/
public static final int LeftBracket = 591;
public static final int LeftBracket = 603;
/**
* \ (this text inhibit multiline comment caused by backslash)
*/
public static final int Backslash = 592;
public static final int Backslash = 604;
/**
* ]
*/
public static final int RightBracket = 593;
public static final int RightBracket = 605;
/**
* `
*/
public static final int GraveAccent = 594;
public static final int GraveAccent = 606;
public static final int CapsLock = 595;
public static final int CapsLock = 607;
public static final int ScrollLock = 596;
public static final int ScrollLock = 608;
public static final int NumLock = 597;
public static final int NumLock = 609;
public static final int PrintScreen = 598;
public static final int PrintScreen = 610;
public static final int Pause = 599;
public static final int Pause = 611;
public static final int Keypad0 = 600;
public static final int Keypad0 = 612;
public static final int Keypad1 = 601;
public static final int Keypad1 = 613;
public static final int Keypad2 = 602;
public static final int Keypad2 = 614;
public static final int Keypad3 = 603;
public static final int Keypad3 = 615;
public static final int Keypad4 = 604;
public static final int Keypad4 = 616;
public static final int Keypad5 = 605;
public static final int Keypad5 = 617;
public static final int Keypad6 = 606;
public static final int Keypad6 = 618;
public static final int Keypad7 = 607;
public static final int Keypad7 = 619;
public static final int Keypad8 = 608;
public static final int Keypad8 = 620;
public static final int Keypad9 = 609;
public static final int Keypad9 = 621;
public static final int KeypadDecimal = 610;
public static final int KeypadDecimal = 622;
public static final int KeypadDivide = 611;
public static final int KeypadDivide = 623;
public static final int KeypadMultiply = 612;
public static final int KeypadMultiply = 624;
public static final int KeypadSubtract = 613;
public static final int KeypadSubtract = 625;
public static final int KeypadAdd = 614;
public static final int KeypadAdd = 626;
public static final int KeypadEnter = 615;
public static final int KeypadEnter = 627;
public static final int KeypadEqual = 616;
public static final int KeypadEqual = 628;
/**
* Available on some keyboard/mouses. Often referred as "Browser Back"
*/
public static final int AppBack = 629;
public static final int AppForward = 630;
/**
* Menu (Xbox) + (Switch) Start/Options (PS)
*/
public static final int GamepadStart = 617;
public static final int GamepadStart = 631;
/**
* View (Xbox) - (Switch) Share (PS)
*/
public static final int GamepadBack = 618;
public static final int GamepadBack = 632;
/**
* X (Xbox) Y (Switch) Square (PS) // Tap: Toggle Menu. Hold: Windowing mode (Focus/Move/Resize windows)
*/
public static final int GamepadFaceLeft = 619;
public static final int GamepadFaceLeft = 633;
/**
* B (Xbox) A (Switch) Circle (PS) // Cancel / Close / Exit
*/
public static final int GamepadFaceRight = 620;
public static final int GamepadFaceRight = 634;
/**
* Y (Xbox) X (Switch) Triangle (PS) // Text Input / On-screen Keyboard
*/
public static final int GamepadFaceUp = 621;
public static final int GamepadFaceUp = 635;
/**
* A (Xbox) B (Switch) Cross (PS) // Activate / Open / Toggle / Tweak
*/
public static final int GamepadFaceDown = 622;
public static final int GamepadFaceDown = 636;
/**
* D-pad Left // Move / Tweak / Resize Window (in Windowing mode)
*/
public static final int GamepadDpadLeft = 623;
public static final int GamepadDpadLeft = 637;
/**
* D-pad Right // Move / Tweak / Resize Window (in Windowing mode)
*/
public static final int GamepadDpadRight = 624;
public static final int GamepadDpadRight = 638;
/**
* D-pad Up // Move / Tweak / Resize Window (in Windowing mode)
*/
public static final int GamepadDpadUp = 625;
public static final int GamepadDpadUp = 639;
/**
* D-pad Down // Move / Tweak / Resize Window (in Windowing mode)
*/
public static final int GamepadDpadDown = 626;
public static final int GamepadDpadDown = 640;
/**
* L Bumper (Xbox) L (Switch) L1 (PS) // Tweak Slower / Focus Previous (in Windowing mode)
*/
public static final int GamepadL1 = 627;
public static final int GamepadL1 = 641;
/**
* R Bumper (Xbox) R (Switch) R1 (PS) // Tweak Faster / Focus Next (in Windowing mode)
*/
public static final int GamepadR1 = 628;
public static final int GamepadR1 = 642;
/**
* L Trig. (Xbox) ZL (Switch) L2 (PS) [Analog]
*/
public static final int GamepadL2 = 629;
public static final int GamepadL2 = 643;
/**
* R Trig. (Xbox) ZR (Switch) R2 (PS) [Analog]
*/
public static final int GamepadR2 = 630;
public static final int GamepadR2 = 644;
/**
* L Stick (Xbox) L3 (Switch) L3 (PS)
*/
public static final int GamepadL3 = 631;
public static final int GamepadL3 = 645;
/**
* R Stick (Xbox) R3 (Switch) R3 (PS)
*/
public static final int GamepadR3 = 632;
public static final int GamepadR3 = 646;
/**
* [Analog] // Move Window (in Windowing mode)
*/
public static final int GamepadLStickLeft = 633;
public static final int GamepadLStickLeft = 647;
/**
* [Analog] // Move Window (in Windowing mode)
*/
public static final int GamepadLStickRight = 634;
public static final int GamepadLStickRight = 648;
/**
* [Analog] // Move Window (in Windowing mode)
*/
public static final int GamepadLStickUp = 635;
public static final int GamepadLStickUp = 649;
/**
* [Analog] // Move Window (in Windowing mode)
*/
public static final int GamepadLStickDown = 636;
public static final int GamepadLStickDown = 650;
/**
* [Analog]
*/
public static final int GamepadRStickLeft = 637;
public static final int GamepadRStickLeft = 651;
/**
* [Analog]
*/
public static final int GamepadRStickRight = 638;
public static final int GamepadRStickRight = 652;
/**
* [Analog]
*/
public static final int GamepadRStickUp = 639;
public static final int GamepadRStickUp = 653;
/**
* [Analog]
*/
public static final int GamepadRStickDown = 640;
public static final int GamepadRStickDown = 654;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
public static final int MouseLeft = 641;
public static final int MouseLeft = 655;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
public static final int MouseRight = 642;
public static final int MouseRight = 656;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
public static final int MouseMiddle = 643;
public static final int MouseMiddle = 657;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
public static final int MouseX1 = 644;
public static final int MouseX1 = 658;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
public static final int MouseX2 = 645;
public static final int MouseX2 = 659;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
public static final int MouseWheelX = 646;
public static final int MouseWheelX = 660;
/**
* Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.
*/
public static final int MouseWheelY = 647;
public static final int MouseWheelY = 661;
/**
* [Internal] Reserved for mod storage
*/
public static final int ReservedForModCtrl = 648;
public static final int ReservedForModCtrl = 662;
/**
* [Internal] Reserved for mod storage
*/
public static final int ReservedForModShift = 649;
public static final int ReservedForModShift = 663;
/**
* [Internal] Reserved for mod storage
*/
public static final int ReservedForModAlt = 650;
public static final int ReservedForModAlt = 664;
/**
* [Internal] Reserved for mod storage
*/
public static final int ReservedForModSuper = 651;
public static final int ReservedForModSuper = 665;
/**
* [Internal] Reserved for mod storage
*/
public static final int COUNT = 652;
public static final int COUNT = 666;
/**
* Keyboard Modifiers (explicitly submitted by backend via AddKeyEvent() calls) - This is mirroring the data also written to io.KeyCtrl, io.KeyShift, io.KeyAlt, io.KeySuper, in a format allowing them to be accessed via standard key API, allowing calls such as IsKeyPressed(), IsKeyReleased(), querying duration etc. - Code polling every key (e.g. an interface to detect a key press for input mapping) might want to ignore those and prefer using the real keys (e.g. ImGuiKey_LeftCtrl, ImGuiKey_RightCtrl instead of ImGuiMod_Ctrl). - In theory the value of keyboard modifiers should be roughly equivalent to a logical or of the equivalent left/right keys. In practice: it's complicated; mods are often provided from different sources. Keyboard layout, IME, sticky keys and backends tend to interfere and break that equivalence. The safer decision is to relay that ambiguity down to the end-user...
* Keyboard Modifiers (explicitly submitted by backend via AddKeyEvent() calls) - This is mirroring the data also written to io.KeyCtrl, io.KeyShift, io.KeyAlt, io.KeySuper, in a format allowing them to be accessed via standard key API, allowing calls such as IsKeyPressed(), IsKeyReleased(), querying duration etc. - Code polling every key (e.g. an interface to detect a key press for input mapping) might want to ignore those and prefer using the real keys (e.g. ImGuiKey_LeftCtrl, ImGuiKey_RightCtrl instead of ImGuiMod_Ctrl). - In theory the value of keyboard modifiers should be roughly equivalent to a logical or of the equivalent left/right keys. In practice: it's complicated; mods are often provided from different sources. Keyboard layout, IME, sticky keys and backends tend to interfere and break that equivalence. The safer decision is to relay that ambiguity down to the end-user... - On macOS, we swap Cmd(Super) and Ctrl keys at the time of the io.AddKeyEvent() call.
*
* <p>Definition: {@code 0}
*/
public static final int ImGuiMod_None = 0;
/**
* Ctrl
* Ctrl (non-macOS), Cmd (macOS)
*
* <p>Definition: {@code 1 << 12}
*/
@@ -476,25 +507,18 @@ public final class ImGuiKey {
public static final int ImGuiMod_Alt = 16384;
/**
* Cmd/Super/Windows
* Windows/Super (non-macOS), Ctrl (macOS)
*
* <p>Definition: {@code 1 << 15}
*/
public static final int ImGuiMod_Super = 32768;
/**
* Alias for Ctrl (non-macOS) _or_ Super (macOS).
* 4-bits
*
* <p>Definition: {@code 1 << 11}
* <p>Definition: {@code 0xF000}
*/
public static final int ImGuiMod_Shortcut = 2048;
/**
* 5-bits
*
* <p>Definition: {@code 0xF800}
*/
public static final int ImGuiMod_Mask_ = 63488;
public static final int ImGuiMod_Mask_ = 61440;
/**
* [Internal] Prior to 1.87 we required user to fill io.KeysDown[512] using their own native index + the io.KeyMap[] array. We are ditching this method but keeping a legacy path for user code doing e.g. IsKeyPressed(MY_NATIVE_KEY_CODE) If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.
@@ -508,21 +532,21 @@ public final class ImGuiKey {
*
* <p>Definition: {@code ImGuiKey_COUNT}
*/
public static final int NamedKey_END = 652;
public static final int NamedKey_END = 666;
/**
* [Internal] Prior to 1.87 we required user to fill io.KeysDown[512] using their own native index + the io.KeyMap[] array. We are ditching this method but keeping a legacy path for user code doing e.g. IsKeyPressed(MY_NATIVE_KEY_CODE) If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.
*
* <p>Definition: {@code ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN}
*/
public static final int NamedKey_COUNT = 140;
public static final int NamedKey_COUNT = 154;
/**
* Size of KeysData[]: hold legacy 0..512 keycodes + named keys
*
* <p>Definition: {@code ImGuiKey_COUNT}
*/
public static final int KeysData_SIZE = 652;
public static final int KeysData_SIZE = 666;
/**
* Accesses to io.KeysData[] must use (key - ImGuiKey_KeysData_OFFSET) index.
@@ -531,6 +555,13 @@ public final class ImGuiKey {
*/
public static final int KeysData_OFFSET = 0;
/**
* Removed in 1.90.7, you can now simply use ImGuiMod_Ctrl
*
* <p>Definition: {@code ImGuiMod_Ctrl}
*/
public static final int ImGuiMod_Shortcut = 4096;
/**
* Renamed in 1.89
*
@@ -558,11 +589,4 @@ public final class ImGuiKey {
* <p>Definition: {@code ImGuiMod_Super}
*/
public static final int ModSuper = 32768;
/**
* Renamed in 1.87
*
* <p>Definition: {@code ImGuiKey_KeypadEnter}
*/
public static final int KeyPadEnter = 615;
}
@@ -50,35 +50,42 @@ public final class ImGuiPopupFlags {
public static final int MouseButtonDefault_ = 1;
/**
* For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack
* For OpenPopup*(), BeginPopupContext*(): don't reopen same popup if already open (won't reposition, won't reinitialize navigation)
*
* <p>Definition: {@code 1 << 5}
*/
public static final int NoOpenOverExistingPopup = 32;
public static final int NoReopen = 32;
/**
* For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack
*
* <p>Definition: {@code 1 << 7}
*/
public static final int NoOpenOverExistingPopup = 128;
/**
* For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space
*
* <p>Definition: {@code 1 << 6}
* <p>Definition: {@code 1 << 8}
*/
public static final int NoOpenOverItems = 64;
public static final int NoOpenOverItems = 256;
/**
* For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup.
*
* <p>Definition: {@code 1 << 7}
* <p>Definition: {@code 1 << 10}
*/
public static final int AnyPopupId = 128;
public static final int AnyPopupId = 1024;
/**
* For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)
*
* <p>Definition: {@code 1 << 8}
* <p>Definition: {@code 1 << 11}
*/
public static final int AnyPopupLevel = 256;
public static final int AnyPopupLevel = 2048;
/**
* Definition: {@code ImGuiPopupFlags_AnyPopupId | ImGuiPopupFlags_AnyPopupLevel}
*/
public static final int AnyPopup = 384;
public static final int AnyPopup = 3072;
}
@@ -21,7 +21,7 @@ public final class ImGuiSelectableFlags {
public static final int DontClosePopups = 1;
/**
* Selectable frame can span all columns (text will still fit in current column)
* Frame will span all columns of its container table (text will still fit in current column)
*
* <p>Definition: {@code 1 << 1}
*/
@@ -25,19 +25,26 @@ public final class ImGuiSliderFlags {
public static final int Logarithmic = 32;
/**
* Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits)
* Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits).
*
* <p>Definition: {@code 1 << 6}
*/
public static final int NoRoundToFormat = 64;
/**
* Disable CTRL+Click or Enter key allowing to input text directly into the widget
* Disable CTRL+Click or Enter key allowing to input text directly into the widget.
*
* <p>Definition: {@code 1 << 7}
*/
public static final int NoInput = 128;
/**
* Enable wrapping around from max to min and from min to max (only supported by DragXXX() functions for now.
*
* <p>Definition: {@code 1 << 8}
*/
public static final int WrapAround = 256;
/**
* [Internal] We treat using those bits as being potentially a 'float power' argument from the previous API that has got miscast to this enum, and will trigger an assert if needed.
*
@@ -129,35 +129,55 @@ public final class ImGuiStyleVar {
*/
public static final int TabRounding = 22;
/**
* float TabBorderSize
*/
public static final int TabBorderSize = 23;
/**
* float TabBarBorderSize
*/
public static final int TabBarBorderSize = 24;
/**
* float TableAngledHeadersAngle
*/
public static final int TableAngledHeadersAngle = 25;
/**
* ImVec2 TableAngledHeadersTextAlign
*/
public static final int TableAngledHeadersTextAlign = 26;
/**
* ImVec2 ButtonTextAlign
*/
public static final int ButtonTextAlign = 23;
public static final int ButtonTextAlign = 27;
/**
* ImVec2 SelectableTextAlign
*/
public static final int SelectableTextAlign = 24;
public static final int SelectableTextAlign = 28;
/**
* float SeparatorTextBorderSize
* float SeparatorTextBorderSize
*/
public static final int SeparatorTextBorderSize = 25;
public static final int SeparatorTextBorderSize = 29;
/**
* ImVec2 SeparatorTextAlign
*/
public static final int SeparatorTextAlign = 26;
public static final int SeparatorTextAlign = 30;
/**
* ImVec2 SeparatorTextPadding
*/
public static final int SeparatorTextPadding = 27;
public static final int SeparatorTextPadding = 31;
/**
* float DockingSeparatorSize
*/
public static final int DockingSeparatorSize = 28;
public static final int DockingSeparatorSize = 32;
public static final int COUNT = 29;
public static final int COUNT = 33;
}
@@ -35,7 +35,7 @@ public final class ImGuiTabBarFlags {
public static final int TabListPopupButton = 4;
/**
* Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() {@code &} {@code &} IsMouseClicked(2)) *p_open = false.
* Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You may handle this behavior manually on user's side with if (IsItemHovered() {@code &} {@code &} IsMouseClicked(2)) *p_open = false.
*
* <p>Definition: {@code 1 << 3}
*/
@@ -56,26 +56,33 @@ public final class ImGuiTabBarFlags {
public static final int NoTooltip = 32;
/**
* Resize tabs when they don't fit
* Draw selected overline markers over selected tab
*
* <p>Definition: {@code 1 << 6}
*/
public static final int FittingPolicyResizeDown = 64;
public static final int DrawSelectedOverline = 64;
/**
* Resize tabs when they don't fit
*
* <p>Definition: {@code 1 << 7}
*/
public static final int FittingPolicyResizeDown = 128;
/**
* Add scroll buttons when tabs don't fit
*
* <p>Definition: {@code 1 << 7}
* <p>Definition: {@code 1 << 8}
*/
public static final int FittingPolicyScroll = 128;
public static final int FittingPolicyScroll = 256;
/**
* Definition: {@code ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll}
*/
public static final int FittingPolicyMask_ = 192;
public static final int FittingPolicyMask_ = 384;
/**
* Definition: {@code ImGuiTabBarFlags_FittingPolicyResizeDown}
*/
public static final int FittingPolicyDefault_ = 64;
public static final int FittingPolicyDefault_ = 128;
}
@@ -14,7 +14,7 @@ public final class ImGuiTabItemFlags {
public static final int None = 0;
/**
* Display a dot next to the title + tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar.
* Display a dot next to the title + set ImGuiTabItemFlags_NoAssumedClosure.
*
* <p>Definition: {@code 1 << 0}
*/
@@ -28,14 +28,14 @@ public final class ImGuiTabItemFlags {
public static final int SetSelected = 2;
/**
* Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() {@code &} {@code &} IsMouseClicked(2)) *p_open = false.
* Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You may handle this behavior manually on user's side with if (IsItemHovered() {@code &} {@code &} IsMouseClicked(2)) *p_open = false.
*
* <p>Definition: {@code 1 << 2}
*/
public static final int NoCloseWithMiddleMouseButton = 4;
/**
* Don't call PushID(tab{@code ->}ID)/PopID() on BeginTabItem()/EndTabItem()
* Don't call PushID()/PopID() on BeginTabItem()/EndTabItem()
*
* <p>Definition: {@code 1 << 3}
*/
@@ -68,4 +68,11 @@ public final class ImGuiTabItemFlags {
* <p>Definition: {@code 1 << 7}
*/
public static final int Trailing = 128;
/**
* Tab is selected when trying to close + closure is not immediately assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar.
*
* <p>Definition: {@code 1 << 8}
*/
public static final int NoAssumedClosure = 256;
}
@@ -100,7 +100,7 @@ public final class ImGuiTableColumnFlags {
public static final int NoSortDescending = 2048;
/**
* TableHeadersRow() will not submit label for this column. Convenient for some small columns. Name will still appear in context menu.
* TableHeadersRow() will not submit horizontal label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers.
*
* <p>Definition: {@code 1 << 12}
*/
@@ -141,6 +141,13 @@ public final class ImGuiTableColumnFlags {
*/
public static final int IndentDisable = 131072;
/**
* TableHeadersRow() will submit an angled header row for this column. Note this will add an extra row.
*
* <p>Definition: {@code 1 << 18}
*/
public static final int AngledHeader = 262144;
/**
* Status: is enabled == not hidden by user/api (referred to as "Hide" in _DefaultHide and _NoHide) flags.
*
@@ -275,6 +275,13 @@ public final class ImGuiTableFlags {
*/
public static final int SortTristate = 134217728;
/**
* Highlight column headers when hovered (may evolve into a fuller highlight)
*
* <p>Definition: {@code 1 << 28}
*/
public static final int HighlightHoveredColumn = 268435456;
/**
* [Internal] Combinations and masks
*
@@ -84,35 +84,49 @@ public final class ImGuiTreeNodeFlags {
public static final int Bullet = 512;
/**
* Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding().
* Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding() before the node.
*
* <p>Definition: {@code 1 << 10}
*/
public static final int FramePadding = 1024;
/**
* Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line. In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default.
* Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line without using AllowOverlap mode.
*
* <p>Definition: {@code 1 << 11}
*/
public static final int SpanAvailWidth = 2048;
/**
* Extend hit box to the left-most and right-most edges (bypass the indented area).
* Extend hit box to the left-most and right-most edges (cover the indent area).
*
* <p>Definition: {@code 1 << 12}
*/
public static final int SpanFullWidth = 4096;
/**
* (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
* Narrow hit box + narrow hovering highlight, will only cover the label text.
*
* <p>Definition: {@code 1 << 13}
*/
public static final int NavLeftJumpsBackHere = 8192;
public static final int SpanTextWidth = 8192;
/**
* ImGuiTreeNodeFlags_NoScrollOnOpen = 1 {@code <<} 14, // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible
* Frame will span all columns of its container table (text will still fit in current column)
*
* <p>Definition: {@code 1 << 14}
*/
public static final int SpanAllColumns = 16384;
/**
* (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
*
* <p>Definition: {@code 1 << 15}
*/
public static final int NavLeftJumpsBackHere = 32768;
/**
* ImGuiTreeNodeFlags_NoScrollOnOpen = 1 {@code <<} 16, // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible
*
* <p>Definition: {@code ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog}
*/
@@ -126,44 +126,37 @@ public final class ImGuiWindowFlags {
public static final int AlwaysHorizontalScrollbar = 32768;
/**
* Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)
* No gamepad/keyboard navigation within the window
*
* <p>Definition: {@code 1 << 16}
*/
public static final int AlwaysUseWindowPadding = 65536;
/**
* No gamepad/keyboard navigation within the window
*
* <p>Definition: {@code 1 << 18}
*/
public static final int NoNavInputs = 262144;
public static final int NoNavInputs = 65536;
/**
* No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)
*
* <p>Definition: {@code 1 << 19}
* <p>Definition: {@code 1 << 17}
*/
public static final int NoNavFocus = 524288;
public static final int NoNavFocus = 131072;
/**
* Display a dot next to the title. When used in a tab/docking context, tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar.
*
* <p>Definition: {@code 1 << 20}
* <p>Definition: {@code 1 << 18}
*/
public static final int UnsavedDocument = 1048576;
public static final int UnsavedDocument = 262144;
/**
* Disable docking of this window
*
* <p>Definition: {@code 1 << 21}
* <p>Definition: {@code 1 << 19}
*/
public static final int NoDocking = 2097152;
public static final int NoDocking = 524288;
/**
* Definition: {@code ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus}
*/
public static final int NoNav = 786432;
public static final int NoNav = 196608;
/**
* Definition: {@code ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse}
@@ -173,14 +166,7 @@ public final class ImGuiWindowFlags {
/**
* Definition: {@code ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus}
*/
public static final int NoInputs = 786944;
/**
* [BETA] On child window: allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows.
*
* <p>Definition: {@code 1 << 23}
*/
public static final int NavFlattened = 8388608;
public static final int NoInputs = 197120;
/**
* Don't use! For internal use by BeginChild()
@@ -223,4 +209,18 @@ public final class ImGuiWindowFlags {
* <p>Definition: {@code 1 << 29}
*/
public static final int DockNodeHost = 536870912;
/**
* Obsoleted in 1.90: Use ImGuiChildFlags_AlwaysUseWindowPadding in BeginChild() call.
*
* <p>Definition: {@code 1 << 30}
*/
public static final int AlwaysUseWindowPadding = 1073741824;
/**
* Obsoleted in 1.90.9: Use ImGuiChildFlags_NavFlattened in BeginChild() call.
*
* <p>Definition: {@code 1 << 31}
*/
public static final int NavFlattened = -2147483648;
}
@@ -1088,7 +1088,7 @@ public final class ImGui extends imgui.ImGui {
private static native int nDockBuilderSplitNode(int nodeId, int splitDir, float sizeRatioForNodeAtDir, int[] obj_outIdAtDir, int[] obj_outIdAtOppositeDir); /*MANUAL
auto outIdAtDir = obj_outIdAtDir == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_outIdAtDir, JNI_FALSE);
auto outIdAtOppositeDir = obj_outIdAtOppositeDir == NULL ? NULL : (int*)env->GetPrimitiveArrayCritical(obj_outIdAtOppositeDir, JNI_FALSE);
auto _result = ImGui::DockBuilderSplitNode(nodeId, splitDir, sizeRatioForNodeAtDir, reinterpret_cast<ImGuiID*>((outIdAtDir != NULL ? &outIdAtDir[0] : NULL)), reinterpret_cast<ImGuiID*>((outIdAtOppositeDir != NULL ? &outIdAtOppositeDir[0] : NULL)));
auto _result = ImGui::DockBuilderSplitNode(nodeId, static_cast<ImGuiDir>(splitDir), sizeRatioForNodeAtDir, reinterpret_cast<ImGuiID*>((outIdAtDir != NULL ? &outIdAtDir[0] : NULL)), reinterpret_cast<ImGuiID*>((outIdAtOppositeDir != NULL ? &outIdAtOppositeDir[0] : NULL)));
if (outIdAtDir != NULL) env->ReleasePrimitiveArrayCritical(obj_outIdAtDir, outIdAtDir, JNI_FALSE);
if (outIdAtOppositeDir != NULL) env->ReleasePrimitiveArrayCritical(obj_outIdAtOppositeDir, outIdAtOppositeDir, JNI_FALSE);
return _result;
@@ -1545,4 +1545,19 @@ public final class ImGui extends imgui.ImGui {
return _result;
*/
// Shade functions (write over already created vertices)
public static void shadeVertsTransformPos(final ImDrawList drawList, final int vertStartIdx, final int vertEndIdx, final ImVec2 pivotIn, final float cosA, final float sinA, final ImVec2 pivotOut) {
nShadeVertsTransformPos(drawList.ptr, vertStartIdx, vertEndIdx, pivotIn.x, pivotIn.y, cosA, sinA, pivotOut.x, pivotOut.y);
}
public static void shadeVertsTransformPos(final ImDrawList drawList, final int vertStartIdx, final int vertEndIdx, final float pivotInX, final float pivotInY, final float cosA, final float sinA, final float pivotOutX, final float pivotOutY) {
nShadeVertsTransformPos(drawList.ptr, vertStartIdx, vertEndIdx, pivotInX, pivotInY, cosA, sinA, pivotOutX, pivotOutY);
}
private static native void nShadeVertsTransformPos(long drawList, int vertStartIdx, int vertEndIdx, float pivotInX, float pivotInY, float cosA, float sinA, float pivotOutX, float pivotOutY); /*MANUAL
ImVec2 pivotIn = ImVec2(pivotInX, pivotInY);
ImVec2 pivotOut = ImVec2(pivotOutX, pivotOutY);
ImGui::ShadeVertsTransformPos(reinterpret_cast<ImDrawList*>(drawList), vertStartIdx, vertEndIdx, pivotIn, cosA, sinA, pivotOut);
*/
}
@@ -38,13 +38,6 @@ public final class ImGuiButtonFlags {
*/
public static final int MouseButtonMask_ = 7;
/**
* [Internal]
*
* <p>Definition: {@code ImGuiButtonFlags_MouseButtonLeft}
*/
public static final int MouseButtonDefault_ = 1;
/**
* return true on click (mouse down event)
*
@@ -137,7 +130,7 @@ public final class ImGuiButtonFlags {
public static final int NoHoldingActiveId = 131072;
/**
* don't override navigation focus when activated (FIXME: this is essentially used everytime an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.InFlags)
* don't override navigation focus when activated (FIXME: this is essentially used every time an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.InFlags)
*
* <p>Definition: {@code 1 << 18}
*/
@@ -14,169 +14,185 @@ public final class ImGuiDockNodeFlags {
public static final int None = 0;
/**
* Shared // Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.
* Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.
*
* <p>Definition: {@code 1 << 0}
*/
public static final int KeepAliveOnly = 1;
/**
* Shared // Disable docking inside the Central Node, which will be always kept empty.
* Disable docking over the Central Node, which will be always kept empty.
*
* <p>Definition: {@code 1 << 2}
*/
public static final int NoDockingInCentralNode = 4;
public static final int NoDockingOverCentralNode = 4;
/**
* Shared // Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.
* Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.
*
* <p>Definition: {@code 1 << 3}
*/
public static final int PassthruCentralNode = 8;
/**
* Shared/Local // Disable splitting the node into smaller nodes. Useful e.g. when embedding dockspaces into a main root one (the root one may have splitting disabled to reduce confusion). Note: when turned off, existing splits will be preserved.
* Disable other windows/nodes from splitting this node.
*
* <p>Definition: {@code 1 << 4}
*/
public static final int NoSplit = 16;
public static final int NoDockingSplit = 16;
/**
* Shared/Local // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces.
* Saved // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces.
*
* <p>Definition: {@code 1 << 5}
*/
public static final int NoResize = 32;
/**
* Shared/Local // Tab bar will automatically hide when there is a single window in the dock node.
* Tab bar will automatically hide when there is a single window in the dock node.
*
* <p>Definition: {@code 1 << 6}
*/
public static final int AutoHideTabBar = 64;
/**
* Local, Saved // A dockspace is a node that occupy space within an existing user window. Otherwise the node is floating and create its own window.
* Disable undocking this node.
*
* <p>Definition: {@code 1 << 7}
*/
public static final int NoUndocking = 128;
/**
* Renamed in 1.90
*
* <p>Definition: {@code ImGuiDockNodeFlags_NoDockingSplit}
*/
public static final int NoSplit = 16;
/**
* Renamed in 1.90
*
* <p>Definition: {@code ImGuiDockNodeFlags_NoDockingOverCentralNode}
*/
public static final int NoDockingInCentralNode = 4;
/**
* Saved // A dockspace is a node that occupy space within an existing user window. Otherwise the node is floating and create its own window.
*
* <p>Definition: {@code 1 << 10}
*/
public static final int DockSpace = 1024;
/**
* Local, Saved // The central node has 2 main properties: stay visible when empty, only use "remaining" spaces from its neighbor.
* Saved // The central node has 2 main properties: stay visible when empty, only use "remaining" spaces from its neighbor.
*
* <p>Definition: {@code 1 << 11}
*/
public static final int CentralNode = 2048;
/**
* Local, Saved // Tab bar is completely unavailable. No triangle in the corner to enable it back.
* Saved // Tab bar is completely unavailable. No triangle in the corner to enable it back.
*
* <p>Definition: {@code 1 << 12}
*/
public static final int NoTabBar = 4096;
/**
* Local, Saved // Tab bar is hidden, with a triangle in the corner to show it again (NB: actual tab-bar instance may be destroyed as this is only used for single-window tab bar)
* Saved // Tab bar is hidden, with a triangle in the corner to show it again (NB: actual tab-bar instance may be destroyed as this is only used for single-window tab bar)
*
* <p>Definition: {@code 1 << 13}
*/
public static final int HiddenTabBar = 8192;
/**
* Local, Saved // Disable window/docking menu (that one that appears instead of the collapse button)
* Saved // Disable window/docking menu (that one that appears instead of the collapse button)
*
* <p>Definition: {@code 1 << 14}
*/
public static final int NoWindowMenuButton = 16384;
/**
* Local, Saved //
* Saved // Disable close button
*
* <p>Definition: {@code 1 << 15}
*/
public static final int NoCloseButton = 32768;
/**
* Local, Saved // Disable any form of docking in this dockspace or individual node. (On a whole dockspace, this pretty much defeat the purpose of using a dockspace at all). Note: when turned on, existing docked nodes will be preserved.
*
* <p>Definition: {@code 1 << 16}
*/
public static final int NoDocking = 65536;
public static final int NoResizeX = 65536;
/**
* [EXPERIMENTAL] Prevent another window/node from splitting this node.
*
* <p>Definition: {@code 1 << 17}
*/
public static final int NoDockingSplitMe = 131072;
public static final int NoResizeY = 131072;
/**
* [EXPERIMENTAL] Prevent this node from splitting another window/node.
* Any docked window will be automatically be focus-route chained (window{@code ->}ParentWindowForFocusRoute set to this) so Shortcut() in this window can run when any docked window is focused.
*
* <p>Definition: {@code 1 << 18}
*/
public static final int NoDockingSplitOther = 262144;
public static final int DockedWindowsInFocusRoute = 262144;
/**
* [EXPERIMENTAL] Prevent another window/node to be docked over this node.
* Disable this node from splitting other windows/nodes.
*
* <p>Definition: {@code 1 << 19}
*/
public static final int NoDockingOverMe = 524288;
public static final int NoDockingSplitOther = 524288;
/**
* [EXPERIMENTAL] Prevent this node to be docked over another window or non-empty node.
* Disable other windows/nodes from being docked over this node.
*
* <p>Definition: {@code 1 << 20}
*/
public static final int NoDockingOverOther = 1048576;
public static final int NoDockingOverMe = 1048576;
/**
* [EXPERIMENTAL] Prevent this node to be docked over an empty node (e.g. DockSpace with no other windows)
* Disable this node from being docked over another window or non-empty node.
*
* <p>Definition: {@code 1 << 21}
*/
public static final int NoDockingOverEmpty = 2097152;
public static final int NoDockingOverOther = 2097152;
/**
* [EXPERIMENTAL]
* Disable this node from being docked over an empty node (e.g. DockSpace with no other windows)
*
* <p>Definition: {@code 1 << 22}
*/
public static final int NoResizeX = 4194304;
public static final int NoDockingOverEmpty = 4194304;
/**
* [EXPERIMENTAL]
*
* <p>Definition: {@code 1 << 23}
* Definition: {@code ImGuiDockNodeFlags_NoDockingOverMe | ImGuiDockNodeFlags_NoDockingOverOther | ImGuiDockNodeFlags_NoDockingOverEmpty | ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoDockingSplitOther}
*/
public static final int NoResizeY = 8388608;
public static final int NoDocking = 7864336;
/**
* Definition: {@code ~0}
* Masks
*
* <p>Definition: {@code ~0}
*/
public static final int SharedFlagsInheritMask_ = -1;
/**
* Definition: {@code ImGuiDockNodeFlags_NoResize | ImGuiDockNodeFlags_NoResizeX | ImGuiDockNodeFlags_NoResizeY}
*/
public static final int NoResizeFlagsMask_ = 12582944;
/**
* Definition: {@code ImGuiDockNodeFlags_NoSplit | ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_DockSpace | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton | ImGuiDockNodeFlags_NoDocking}
*/
public static final int LocalFlagsMask_ = 12713072;
/**
* When splitting those flags are moved to the inheriting child, never duplicated
* Masks
*
* <p>Definition: {@code ImGuiDockNodeFlags_LocalFlagsMask_ {@code &} ~ImGuiDockNodeFlags_DockSpace}
* <p>Definition: {@code ImGuiDockNodeFlags_NoResize | ImGuiDockNodeFlags_NoResizeX | ImGuiDockNodeFlags_NoResizeY}
*/
public static final int LocalFlagsTransferMask_ = 12712048;
public static final int NoResizeFlagsMask_ = 196640;
/**
* Definition: {@code ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_DockSpace | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton | ImGuiDockNodeFlags_NoDocking}
* When splitting, those local flags are moved to the inheriting child, never duplicated
*
* <p>Definition: {@code ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton}
*/
public static final int SavedFlagsMask_ = 12712992;
public static final int LocalFlagsTransferMask_ = 260208;
/**
* When splitting, those local flags are moved to the inheriting child, never duplicated
*
* <p>Definition: {@code ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_DockSpace | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton}
*/
public static final int SavedFlagsMask_ = 261152;
}
@@ -92,4 +92,11 @@ public final class ImGuiItemFlags {
* <p>Definition: {@code 1 << 10}
*/
public static final int Inputable = 1024;
/**
* false // Set by SetNextItemSelectionUserData()
*
* <p>Definition: {@code 1 << 11}
*/
public static final int HasSelectionUserData = 2048;
}
@@ -67,16 +67,23 @@ public class ImGuiItemStatusFlags {
public static final int HoveredWindow = 128;
/**
* Set when the Focusable item just got focused by Tabbing (FIXME: to be removed soon)
* [WIP] Set when item is overlapping the current clipping rectangle (Used internally. Please don't use yet: API/system will change as we refactor Itemadd()).
*
* <p>Definition: {@code 1 << 8}
*/
public static final int FocusedByTabbing = 256;
public static final int Visible = 256;
/**
* [WIP] Set when item is overlapping the current clipping rectangle (Used internally. Please don't use yet: API/system will change as we refactor Itemadd()).
* g.LastItemData.ClipRect is valid.
*
* <p>Definition: {@code 1 << 9}
*/
public static final int Visible = 512;
public static final int HasClipRect = 512;
/**
* g.LastItemData.Shortcut valid. Set by SetNextItemShortcut() {@code ->} ItemAdd().
*
* <p>Definition: {@code 1 << 10}
*/
public static final int HasShortcut = 1024;
}