Есть ли способ в Slick2D преобразовать весь графический контекст в монохромный?

Мне нужен этот эффект, и я подумал, как это сделать. Я искал в Google, но не нашел ничего, что соответствует моим потребностям.

В частности, я хочу рисовать плитки и спрашивать себя, есть ли способ преобразовать графический контекст, к которому они были нарисованы, в монохромный или есть какой-нибудь режим рисования для этого.

Может быть, есть даже способ превратить в монохромный в определенной степени? Как сделать его 50-процентным монохромным, как новый слой. Но было бы очень полезно, если бы я знал, как просто полностью преобразовать все, что нарисовано в графическом контексте, в монохромный (черно-белый).

Я попробовал это:

//draw things on screen

GL11.glPixelTransferf(GL11.GL_RED_SCALE, 0.30f);
GL11.glPixelTransferf(GL11.GL_GREEN_SCALE, 0.59f);
GL11.glPixelTransferf(GL11.GL_BLUE_SCALE, 0.11f);

copyArea(container, screenCapture, 0, 0, GL11.GL_LUMINANCE8);

//draw copied area on screen

public void copyArea(GameContainer c, Image target, int x, int y, int format) {
  target.bind();
  GL11.glCopyTexImage2D(SGL.GL_TEXTURE_2D, 0, format, x, c.getHeight()
        - (y + target.getHeight()), target.getTexture().getTextureWidth(), 
        target.getTexture().getTextureHeight(), 0);
  target.ensureInverted();
}

Но (конечно) это было очень медленно, так как он преобразует графику, затем копирует ее, сбрасывает графику и отображает скопированное изображение графического контекста.

Спасибо за любую помощь или совет заранее.

0 ответов

Другие вопросы по тегам