Skip to content

Commit 8f76b20

Browse files
committed
fix: return methods lost during integration of binding generation API
1 parent 9fbffdd commit 8f76b20

File tree

3 files changed

+80
-8
lines changed

3 files changed

+80
-8
lines changed

buildSrc/src/main/kotlin/tool/generator/api/jni_content.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ private fun createFieldGetContent(field: CtField<*>): List<String> {
540540
getArray.setType<Nothing>(f.createTypeParam("$arrayType[]"))
541541

542542
when (arrayType) {
543-
"boolean", "short", "int", "float", "double", "long" -> {
543+
"boolean", "byte", "short", "int", "float", "double", "long" -> {
544544
getArray.setBody<Nothing>(
545545
f.createCodeSnippet(
546546
"""
@@ -569,7 +569,7 @@ private fun createFieldGetContent(field: CtField<*>): List<String> {
569569
result += getArray.prettyprint(false)
570570

571571
when (arrayType) {
572-
"boolean", "short", "int", "float", "double", "long" -> {
572+
"boolean", "byte", "short", "int", "float", "double", "long" -> {
573573
val getArrayIdx = getArray.clone()
574574
getArrayIdx.addParameter<Nothing>(f.createParameter<Nothing>().apply {
575575
setType<Nothing>(f.createTypeParam("int"))
@@ -625,7 +625,7 @@ private fun createFieldSetContent(field: CtField<*>): List<String> {
625625
setArray.setSimpleName<Nothing>("nSet${field.simpleName}")
626626

627627
when (arrayType) {
628-
"boolean", "short", "int", "float", "double", "long" -> {
628+
"boolean", "byte", "short", "int", "float", "double", "long" -> {
629629
setArray.setBody<Nothing>(
630630
f.createCodeSnippet(
631631
"""
@@ -649,7 +649,7 @@ private fun createFieldSetContent(field: CtField<*>): List<String> {
649649
result += setArray.prettyprint(false)
650650

651651
when (arrayType) {
652-
"boolean", "short", "int", "float", "double", "long" -> {
652+
"boolean", "byte", "short", "int", "float", "double", "long" -> {
653653
val setArrayIdx = setArray.clone()
654654
setArrayIdx.parameters.clear()
655655
setArrayIdx.addParameter<Nothing>(f.createParameter<Nothing>().apply {

imgui-binding/src/generated/java/imgui/ImFontConfig.java

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,22 @@ protected long create() {
2727
return (intptr_t)cfg;
2828
*/
2929

30-
// TODO: FontData
30+
/**
31+
* TTF/OTF data
32+
*/
33+
public native byte[] getFontData(); /*
34+
int size = THIS->FontDataSize;
35+
jbyteArray jBuf = env->NewByteArray(size);
36+
env->SetByteArrayRegion(jBuf, 0, size, (jbyte*)THIS->FontData);
37+
return jBuf;
38+
*/
39+
40+
/**
41+
* TTF/OTF data
42+
*/
43+
public native void setFontData(byte[] fontData); /*
44+
THIS->FontData = &fontData[0];
45+
*/
3146

3247
/**
3348
* TTF/OTF data size
@@ -313,7 +328,28 @@ public void setGlyphOffset(final float valueX, final float valueY) {
313328
THIS->GlyphOffset = value;
314329
*/
315330

316-
// TODO: GlyphRanges
331+
private short[] glyphRanges;
332+
333+
/**
334+
* Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list).
335+
* THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
336+
*/
337+
public short[] getGlyphRanges() {
338+
return glyphRanges;
339+
}
340+
341+
/**
342+
* Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list).
343+
* THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
344+
*/
345+
public void setGlyphRanges(final short[] glyphRanges) {
346+
this.glyphRanges = glyphRanges;
347+
nSetGlyphRanges(glyphRanges);
348+
}
349+
350+
private native void nSetGlyphRanges(short[] glyphRanges); /*
351+
THIS->GlyphRanges = glyphRanges != NULL ? (ImWchar*)&glyphRanges[0] : NULL;
352+
*/
317353

318354
/**
319355
* Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font

imgui-binding/src/main/java/imgui/ImFontConfig.java

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,22 @@ protected long create() {
3030
return (intptr_t)cfg;
3131
*/
3232

33-
// TODO: FontData
33+
/**
34+
* TTF/OTF data
35+
*/
36+
public native byte[] getFontData(); /*
37+
int size = THIS->FontDataSize;
38+
jbyteArray jBuf = env->NewByteArray(size);
39+
env->SetByteArrayRegion(jBuf, 0, size, (jbyte*)THIS->FontData);
40+
return jBuf;
41+
*/
42+
43+
/**
44+
* TTF/OTF data
45+
*/
46+
public native void setFontData(byte[] fontData); /*
47+
THIS->FontData = &fontData[0];
48+
*/
3449

3550
/**
3651
* TTF/OTF data size
@@ -90,7 +105,28 @@ protected long create() {
90105
@BindingField
91106
public ImVec2 GlyphOffset;
92107

93-
// TODO: GlyphRanges
108+
private short[] glyphRanges;
109+
110+
/**
111+
* Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list).
112+
* THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
113+
*/
114+
public short[] getGlyphRanges() {
115+
return glyphRanges;
116+
}
117+
118+
/**
119+
* Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list).
120+
* THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
121+
*/
122+
public void setGlyphRanges(final short[] glyphRanges) {
123+
this.glyphRanges = glyphRanges;
124+
nSetGlyphRanges(glyphRanges);
125+
}
126+
127+
private native void nSetGlyphRanges(short[] glyphRanges); /*
128+
THIS->GlyphRanges = glyphRanges != NULL ? (ImWchar*)&glyphRanges[0] : NULL;
129+
*/
94130

95131
/**
96132
* Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font

0 commit comments

Comments
 (0)