Я решил переключиться на структуру, которая позволила больше контроля, учитывая ответ Тома Хоутина JOGL и LWJGL, кажется, предоставляют доступ к механике тонирования. Я выбрал LWJGL, так как он больше совпадает с моими другими потребностями.
Я нашел это Учебное пособие по космическим захватчикам полезным как прекрасный камень розетт между Java2D и JOGL, LWJGL.
Вот метод, который я создал для класса LWJGL Sprite.
public void drawTinted(int x, int y, float red, float green, float blue)
{
GL11.glPushMatrix();
texture.bind();
GL11.glTranslatef(x, y, 0);
GL11.glColor3f(red,green,blue);
GL11.glBegin(GL11.GL_QUADS);
{
GL11.glTexCoord2f(0, 0);
GL11.glVertex2f(0, 0);
GL11.glTexCoord2f(0, texture.getHeight());
GL11.glVertex2f(0, height);
GL11.glTexCoord2f(texture.getWidth(), texture.getHeight());
GL11.glVertex2f(width,height);
GL11.glTexCoord2f(texture.getWidth(), 0);
GL11.glVertex2f(width,0);
}
GL11.glEnd();
GL11.glPopMatrix();
}