buildSrc/src/main/java/com/sun/scenario/effect/compiler/backend/sw/me/MEBackend.java
Print this page
*** 77,89 ****
--- 77,91 ----
rel.append("env->ReleasePrimitiveArrayCritical(" + jarrayName + ", " + cbufName + ", JNI_ABORT);\n");
}
public final GenCode getGenCode(String effectName,
String peerName,
+ String genericsName,
String interfaceName)
{
Map<String, Variable> vars = parser.getSymbolTable().getGlobalVariables();
+ StringBuilder genericsDecl = new StringBuilder();
StringBuilder interfaceDecl = new StringBuilder();
StringBuilder constants = new StringBuilder();
StringBuilder samplers = new StringBuilder();
StringBuilder srcRects = new StringBuilder();
StringBuilder posDecls = new StringBuilder();
*** 262,280 ****
--- 264,287 ----
cparamDecls.append("jfloat src" + i + "Rect_x2, jfloat src" + i + "Rect_y2,\n");
cparamDecls.append("jint src" + i + "w, jint src" + i + "h, jint src" + i + "scan");
}
}
+ if (genericsName != null) {
+ genericsDecl.append("<"+genericsName+">");
+ }
+
if (interfaceName != null) {
interfaceDecl.append("implements "+interfaceName);
}
Reader template = new InputStreamReader(getClass().getResourceAsStream("MEJavaGlue.stg"));
StringTemplateGroup group = new StringTemplateGroup(template, DefaultTemplateLexer.class);
StringTemplate jglue = group.getInstanceOf("glue");
jglue.setAttribute("effectName", effectName);
jglue.setAttribute("peerName", peerName);
+ jglue.setAttribute("genericsDecl", genericsDecl.toString());
jglue.setAttribute("interfaceDecl", interfaceDecl.toString());
jglue.setAttribute("usercode", usercode.toString());
jglue.setAttribute("samplers", samplers.toString());
jglue.setAttribute("srcRects", srcRects.toString());
jglue.setAttribute("constants", constants.toString());