buildSrc/src/main/java/com/sun/scenario/effect/compiler/backend/sw/java/JSWBackend.java
Print this page
@@ -61,13 +61,15 @@
this.body = scanner.getResult();
}
public final String 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 cleanup = new StringBuilder();
StringBuilder srcRects = new StringBuilder();
@@ -207,19 +209,24 @@
posIncrX.append("pos" + i + "_x += inc" + i + "_x;\n");
posIncrY.append("pos" + i + "_y += inc" + i + "_y;\n");
}
}
+ if (genericsName != null) {
+ genericsDecl.append("<"+genericsName+">");
+ }
+
if (interfaceName != null) {
interfaceDecl.append("implements "+interfaceName);
}
Reader template = new InputStreamReader(getClass().getResourceAsStream("JSWGlue.stg"));
StringTemplateGroup group = new StringTemplateGroup(template, DefaultTemplateLexer.class);
StringTemplate glue = group.getInstanceOf("glue");
glue.setAttribute("effectName", effectName);
glue.setAttribute("peerName", peerName);
+ glue.setAttribute("genericsDecl", genericsDecl.toString());
glue.setAttribute("interfaceDecl", interfaceDecl.toString());
glue.setAttribute("usercode", usercode.toString());
glue.setAttribute("samplers", samplers.toString());
glue.setAttribute("cleanup", cleanup.toString());
glue.setAttribute("srcRects", srcRects.toString());