summaryrefslogtreecommitdiffstats
path: root/src/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java')
-rw-r--r--src/java/com/sun/gluegen/JavaMethodBindingEmitter.java22
-rwxr-xr-xsrc/java/com/sun/gluegen/opengl/GLJavaMethodBindingEmitter.java6
-rwxr-xr-xsrc/java/com/sun/gluegen/procaddress/ProcAddressJavaMethodBindingEmitter.java8
3 files changed, 28 insertions, 8 deletions
diff --git a/src/java/com/sun/gluegen/JavaMethodBindingEmitter.java b/src/java/com/sun/gluegen/JavaMethodBindingEmitter.java
index 0032b61..4a0b201 100644
--- a/src/java/com/sun/gluegen/JavaMethodBindingEmitter.java
+++ b/src/java/com/sun/gluegen/JavaMethodBindingEmitter.java
@@ -134,6 +134,8 @@ public class JavaMethodBindingEmitter extends FunctionEmitter
public final MethodBinding getBinding() { return binding; }
public boolean isForImplementingMethodCall() { return forImplementingMethodCall; }
+ public boolean isForDirectBufferImplementation() { return forDirectBufferImplementation; }
+ public boolean isForIndirectBufferAndArrayImplementation() { return forIndirectBufferAndArrayImplementation; }
public String getName() {
return binding.getRenamedMethodName();
@@ -193,6 +195,16 @@ public class JavaMethodBindingEmitter extends FunctionEmitter
this.forImplementingMethodCall = impl;
}
+ /** Accessor for subclasses. */
+ public void setForDirectBufferImplementation(boolean direct) {
+ this.forDirectBufferImplementation = direct;
+ }
+
+ /** Accessor for subclasses. */
+ public void setForIndirectBufferAndArrayImplementation(boolean indirect) {
+ this.forIndirectBufferAndArrayImplementation = indirect;
+ }
+
protected void emitReturnType(PrintWriter writer)
{
writer.print(getReturnTypeString(false));
@@ -432,7 +444,7 @@ public class JavaMethodBindingEmitter extends FunctionEmitter
writer.print(getImplMethodName(direct));
writer.print("(");
emitCallArguments(binding, writer, direct);
- writer.print(");");
+ writer.print(")");
}
@@ -481,9 +493,11 @@ public class JavaMethodBindingEmitter extends FunctionEmitter
// Only one call being made in this body, going to indirect
// buffer / array entry point
emitCall(binding, writer, false);
+ writer.print(";");
writer.println();
} else {
emitCall(binding, writer, true);
+ writer.print(";");
}
if (binding.signatureCanUseIndirectNIO() && !directNIOOnly) {
@@ -501,6 +515,7 @@ public class JavaMethodBindingEmitter extends FunctionEmitter
}
}
emitCall(binding, writer, false);
+ writer.print(";");
writer.println();
writer.println(" }");
} else {
@@ -556,8 +571,6 @@ public class JavaMethodBindingEmitter extends FunctionEmitter
writer.print(getArgumentName(i));
writer.print(".getBuffer())");
}
- needComma = true;
- ++numArgsEmitted;
if (type.isNIOBuffer()) {
if (direct) {
writer.print(", BufferFactory.getDirectBufferByteOffset(" + getArgumentName(i) + ")");
@@ -589,6 +602,9 @@ public class JavaMethodBindingEmitter extends FunctionEmitter
}
writer.print(offsetArgName(i));
}
+
+ needComma = true;
+ ++numArgsEmitted;
}
return numArgsEmitted;
}
diff --git a/src/java/com/sun/gluegen/opengl/GLJavaMethodBindingEmitter.java b/src/java/com/sun/gluegen/opengl/GLJavaMethodBindingEmitter.java
index ce7f311..8512f38 100755
--- a/src/java/com/sun/gluegen/opengl/GLJavaMethodBindingEmitter.java
+++ b/src/java/com/sun/gluegen/opengl/GLJavaMethodBindingEmitter.java
@@ -50,7 +50,7 @@ import com.sun.gluegen.procaddress.*;
Pixel Buffer Object variants. */
public class GLJavaMethodBindingEmitter extends ProcAddressJavaMethodBindingEmitter {
- private boolean bufferObjectVariant;
+ protected boolean bufferObjectVariant;
public GLJavaMethodBindingEmitter(JavaMethodBindingEmitter methodToWrap,
boolean callThroughProcAddress,
@@ -72,6 +72,10 @@ public class GLJavaMethodBindingEmitter extends ProcAddressJavaMethodBindingEmit
this.bufferObjectVariant = bufferObjectVariant;
}
+ public GLJavaMethodBindingEmitter(GLJavaMethodBindingEmitter methodToWrap) {
+ this(methodToWrap, methodToWrap.bufferObjectVariant);
+ }
+
protected String getArgumentName(int i) {
String name = super.getArgumentName(i);
diff --git a/src/java/com/sun/gluegen/procaddress/ProcAddressJavaMethodBindingEmitter.java b/src/java/com/sun/gluegen/procaddress/ProcAddressJavaMethodBindingEmitter.java
index 9750e71..7900d67 100755
--- a/src/java/com/sun/gluegen/procaddress/ProcAddressJavaMethodBindingEmitter.java
+++ b/src/java/com/sun/gluegen/procaddress/ProcAddressJavaMethodBindingEmitter.java
@@ -51,10 +51,10 @@ public class ProcAddressJavaMethodBindingEmitter extends JavaMethodBindingEmitte
private final CommentEmitter commentEmitterForWrappedMethod =
new WrappedMethodCommentEmitter();
- private boolean callThroughProcAddress;
- private String getProcAddressTableExpr;
- private boolean changeNameAndArguments;
- private ProcAddressEmitter emitter;
+ protected boolean callThroughProcAddress;
+ protected String getProcAddressTableExpr;
+ protected boolean changeNameAndArguments;
+ protected ProcAddressEmitter emitter;
public ProcAddressJavaMethodBindingEmitter(JavaMethodBindingEmitter methodToWrap,
boolean callThroughProcAddress,