[API] Add convenient methods to ImColor helper

This commit is contained in:
SpaiR committed 2022-09-02 12:18:29 +03:00
1 parent 5abaacfc87
commit ff9b88ddbb
1 file changed
+100
@@ -1,5 +1,7 @@
package imgui; package imgui;
import java.awt.Color;
/** /**
* Helper class to get ABGR packed color used by Dear ImGui. * Helper class to get ABGR packed color used by Dear ImGui.
*/ */
@@ -7,25 +9,105 @@ public final class ImColor {
private ImColor() { private ImColor() {
} }
public static int rgba(final int r, final int g, final int b, final int a) {
return intToColor(r, g, b, a);
}
public static int rgb(final int r, final int g, final int b) {
return intToColor(r, g, b);
}
public static int rgba(final float r, final float g, final float b, final float a) {
return floatToColor(r, g, b, a);
}
public static int rgb(final float r, final float g, final float b) {
return floatToColor(r, g, b);
}
/**
* @param hex e.g. "#FFFFFFFF"
*/
public static int rgba(final String hex) {
return rgbaToColor(hex);
}
/**
* @param hex e.g. "#FFFFFF"
*/
public static int rgb(final String hex) {
return rgbToColor(hex);
}
public static int rgba(final ImVec4 color) {
return rgba(color.x, color.y, color.z, color.w);
}
public static int rgb(final ImVec4 color) {
return rgb(color.x, color.y, color.z);
}
public static int rgba(final Color color) {
return rgba(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha());
}
public static int rgb(final Color color) {
return rgb(color.getRed(), color.getGreen(), color.getBlue());
}
public static int hsla(final float h, final float s, final float l, final float a) {
return hslToColor(h, s, l, a);
}
public static int hsl(final float h, final float s, final float l) {
return hslToColor(h, s, l);
}
public static int hsla(final int h, final int s, final int l, final int a) {
return hslToColor(h, s, l, a);
}
public static int hsl(final int h, final int s, final int l) {
return hslToColor(h, s, l);
}
/**
* @deprecated use {@link #rgb(int, int, int)}
*/
@Deprecated
public static int intToColor(final int r, final int g, final int b, final int a) { public static int intToColor(final int r, final int g, final int b, final int a) {
return a << 24 | b << 16 | g << 8 | r; return a << 24 | b << 16 | g << 8 | r;
} }
/**
* @deprecated use {@link #rgba(int, int, int, int)}
*/
@Deprecated
public static int intToColor(final int r, final int g, final int b) { public static int intToColor(final int r, final int g, final int b) {
return intToColor(r, g, b, 255); return intToColor(r, g, b, 255);
} }
/**
* @deprecated use {@link #rgb(float, float, float)}
*/
@Deprecated
public static int floatToColor(final float r, final float g, final float b, final float a) { public static int floatToColor(final float r, final float g, final float b, final float a) {
return intToColor((int) (r * 255), (int) (g * 255), (int) (b * 255), (int) (a * 255)); return intToColor((int) (r * 255), (int) (g * 255), (int) (b * 255), (int) (a * 255));
} }
/**
* @deprecated use {@link #rgba(float, float, float, float)}
*/
@Deprecated
public static int floatToColor(final float r, final float g, final float b) { public static int floatToColor(final float r, final float g, final float b) {
return floatToColor(r, g, b, 1f); return floatToColor(r, g, b, 1f);
} }
/** /**
* @param hex e.g. "#FFFFFF" * @param hex e.g. "#FFFFFF"
* @deprecated use {@link #rgb(String)}
*/ */
@Deprecated
public static int rgbToColor(final String hex) { public static int rgbToColor(final String hex) {
return intToColor( return intToColor(
Integer.parseInt(hex.substring(1, 3), 16), Integer.parseInt(hex.substring(1, 3), 16),
@@ -36,7 +118,9 @@ public final class ImColor {
/** /**
* @param hex e.g. "#FFFFFFFF" * @param hex e.g. "#FFFFFFFF"
* @deprecated use {@link #rgba(String)}
*/ */
@Deprecated
public static int rgbaToColor(final String hex) { public static int rgbaToColor(final String hex) {
return intToColor( return intToColor(
Integer.parseInt(hex.substring(1, 3), 16), Integer.parseInt(hex.substring(1, 3), 16),
@@ -46,18 +130,34 @@ public final class ImColor {
); );
} }
/**
* @deprecated use {@link #hsl(int, int, int)}
*/
@Deprecated
public static int hslToColor(final int h, final int s, final int l) { public static int hslToColor(final int h, final int s, final int l) {
return hslToColor(h, s, l, 1); return hslToColor(h, s, l, 1);
} }
/**
* @deprecated use {@link #hsla(int, int, int, int)}
*/
@Deprecated
public static int hslToColor(final int h, final int s, final int l, final float a) { public static int hslToColor(final int h, final int s, final int l, final float a) {
return hslToColor(h / 360f, s / 100f, l / 100f, a); return hslToColor(h / 360f, s / 100f, l / 100f, a);
} }
/**
* @deprecated use {@link #hsl(float, float, float)}
*/
@Deprecated
public static int hslToColor(final float h, final float s, final float l) { public static int hslToColor(final float h, final float s, final float l) {
return hslToColor(h, s, l, 1); return hslToColor(h, s, l, 1);
} }
/**
* @deprecated use {@link #hsla(float, float, float, float)}
*/
@Deprecated
public static int hslToColor(final float h, final float s, final float l, final float a) { public static int hslToColor(final float h, final float s, final float l, final float a) {
final float q; final float q;
final float p; final float p;