OpenGL - posunování obrazu při více viewportech – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

OpenGL - posunování obrazu při více viewportech – C / C++ – Fórum – Programujte.comOpenGL - posunování obrazu při více viewportech – C / C++ – Fórum – Programujte.com

 

Doomista+1
Stálý člen
22. 8. 2014   #1
-
0
-

Ahoj,
hraju si teď v OpenGL s viewportama a mám problém, který nechápu. Když si udělám split screen, tak mi všechno funguje, dokud mají viewporty podobné vertikální rozlišení.

Připojen obrázek.

Když nastavím jednomu z viewportů přehnané vertikální rozlišení, ten druhý se posune někam pryč z obrazovky. Podobné je to s minimapou. Mám herní plochu:

Připojen obrázek.

A do červeného obdélníku chci umístit minimapu. Okno je 1024x576, viewport herní plochy taky. Minimapa bude zabírat plochu 160x90px a rozlišení bude 2048x1142:

Připojen obrázek.

Nehledě na to, v jakém pořadí vykresluju na viewporty, hlavní viewport se doslova odsune do strany. Pokud bych si hrál dostatečně dlouho, byl bych i schopen ho vrátit na původní polohu, ale rád bych věděl, jak tomuto předejít.
Přepínání viewportů:



// logické struktury
struct Rect2D{
 float x, y;
 int w, h;
};
struct Viewport{
 int width, height; //Resolution
 Rect2D view; // pozice a velikost na obrazovce
};
//definice
Viewport minimap={2048,1142,{0,0,160,90}};
Viewport mainview={1024,576,{0,0,1024,576}};

// přehození
void setViewport(Viewport viewport){
glViewport(GLint(viewport.view.x),GLint(viewport.view.y),viewport.view.w,viewport.view.h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,viewport.width,0,viewport.height,0.0f,10.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

mezi tím nevyměňuju, ani nevyprazdňuju žádné buffery. a už vůbec nechápu, proč nezáleží na pořadí vykreslování, minimapa je prostě vždy správně a hlavní plocha je posunutá.
díky předem za rady

Nahlásit jako SPAM
IP: 90.176.176.–
Na vše stačí iostream...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 80 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý