Add ImColor helper. Increase flexibility of the color API

In most of the places it's now possible to provide a simple int value, instead of float numbers.
This commit is contained in:
SpaiR committed 2020-06-06 17:47:14 +03:00
1 parent 71e7265858
commit 8ac87a9606
4 files changed
+88 -9

No files matched your search

@@ -0,0 +1,48 @@
package imgui;
/**
* Helper class to get ABGR packed color used by Dear ImGui.
*/
public final class ImColor {
private ImColor() {
}
public static int get32(final int r, final int g, final int b, final int a) {
return a << 24 | b << 16 | g << 8 | r;
}
public static int get32(final int r, final int g, final int b) {
return get32(r, g, b, 255);
}
public static int get32(final float r, final float g, final float b, final float a) {
return get32((int) (r * 255), (int) (g * 255), (int) (b * 255), (int) (a * 255));
}
public static int get32(final float r, final float g, final float b) {
return get32(r, g, b, 1f);
}
/**
* @param hex e.g. "#FFFFFF"
*/
public static int get32RGBHex(final String hex) {
return get32(
Integer.parseInt(hex.substring(1, 3), 16),
Integer.parseInt(hex.substring(3, 5), 16),
Integer.parseInt(hex.substring(5, 7), 16)
);
}
/**
* @param hex e.g. "#FFFFFFFF"
*/
public static int get32RGBAHex(final String hex) {
return get32(
Integer.parseInt(hex.substring(1, 3), 16),
Integer.parseInt(hex.substring(3, 5), 16),
Integer.parseInt(hex.substring(5, 7), 16),
Integer.parseInt(hex.substring(7, 9), 16)
);
}
}
+23 -5
View File
@@ -877,12 +877,16 @@ public final class ImGui {
ImGui::PopFont();
*/
public static native void pushStyleColor(int imGuiCol, int col); /*
ImGui::PushStyleColor(imGuiCol, col);
public static native void pushStyleColor(int imGuiCol, float r, float g, float b, float a); /*
ImGui::PushStyleColor(imGuiCol, (ImU32)ImColor(r, g, b, a));
*/
public static native void pushStyleColor(int imGuiCol, float r, float g, float b, float a); /*
ImGui::PushStyleColor(imGuiCol, ImVec4(r, g, b, a));
public static native void pushStyleColor(int imGuiCol, int r, int g, int b, int a); /*
ImGui::PushStyleColor(imGuiCol, (ImU32)ImColor(r, g, b, a));
*/
public static native void pushStyleColor(int imGuiCol, int col); /*
ImGui::PushStyleColor(imGuiCol, col);
*/
public static native void popStyleColor(); /*
@@ -1325,7 +1329,21 @@ public final class ImGui {
* Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor();
*/
public static native void textColored(float r, float g, float b, float a, String text); /*
ImGui::TextColored(ImVec4(r, g, b, a), text, NULL);
ImGui::TextColored(ImColor(r, g, b, a), text, NULL);
*/
/**
* Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor();
*/
public static native void textColored(int r, int g, int b, int a, String text); /*
ImGui::TextColored(ImColor(r, g, b, a), text, NULL);
*/
/**
* Shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor();
*/
public static native void textColored(int col, String text); /*
ImGui::TextColored(ImColor(col), text, NULL);
*/
/**
@@ -602,7 +602,15 @@ public final class ImGuiStyle implements ImGuiDestroyableStruct {
*/
public native void setColor(int imGuiCol, float r, float g, float b, float a); /*
IMGUI_STYLE->Colors[imGuiCol] = ImVec4(r, g, b, a);
IMGUI_STYLE->Colors[imGuiCol] = ImColor(r, g, b, a);
*/
public native void setColor(int imGuiCol, int r, int g, int b, int a); /*
IMGUI_STYLE->Colors[imGuiCol] = ImColor(r, g, b, a);
*/
public native void setColor(int imGuiCol, int col); /*
IMGUI_STYLE->Colors[imGuiCol] = ImColor(col);
*/
public native void scaleAllSizes(float scaleFactor); /*