0
\$\begingroup\$

I'm using OpenGL (with LWJGL) in Java, but the question is language independent.

I have some region (a rectangle for simplicity), and, let's say, a big tiled map which I want to show in this area. The area is not the whole screen, I want to render something around it.

sdfh

I can think of two approaches, but they are not very good and hard to do.

  • Render the whole tiled map and everything else, including background and the frame, on top - leaving the window. Yes, works, but it'd be pain.
  • Render only visible tiles and only the visible portions of the border tiles. This is not possible if I for example render a font using external library - there I don't have such fine control.
  • Some OpenGL trick?

Please, guide me.

\$\endgroup\$

2 Answers 2

2
\$\begingroup\$

You should be able to use glViewport() to limit rendering to a specific portion of the screen. Just keep in mind that you might have to adjust your matrixes as well.

In C++, the call would be as simple as this:

glViewport(left, top, width, height);

You should find a wrapper for this in LWJGL as well.

glScissor() would be another alternative if you don't want to worry about transformations.

\$\endgroup\$
0
\$\begingroup\$

you can try drawing with a clipping mask, you could have a rectangle (or even irregular shapes) for the mask that represents that space.

looks like LWJGL has that functionality (https://github.com/mattdesl/lwjgl-basics/wiki/LibGDX-Masking).

however if you want to make some kind of minimap i think @Mario sugestion is more appropriate.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .