Viewport and Screen
Screen & Viewport in graphics.h
Viewport functions let you define a drawing window inside the full graphics screen. This is useful for panels, mini canvases, clipping, and UI-style layouts.
On This Page
Core Functions
void setviewport(int left, int top, int right, int bottom, int clip); void clearviewport(void); void getviewsettings(struct viewporttype *viewport); int getmaxx(void); int getmaxy(void);
setviewport(): sets active drawing region.clip: if non-zero, drawing is clipped to viewport.clearviewport(): clears only current viewport, not full screen.
How Viewport Works
After setviewport(), coordinates are relative to viewport origin. So (0, 0) becomes the viewport’s top-left corner.
setviewport(60, 60, 320, 240, 1); line(0, 0, 200, 120); // draws inside viewport space
Call setviewport(0, 0, getmaxx(), getmaxy(), 1) to return to full-screen drawing coordinates.
Viewport Example Program
#include <graphics.h>
#include <conio.h>
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
setbkcolor(BLACK);
cleardevice();
setcolor(WHITE);
rectangle(50, 50, 300, 220);
outtextxy(55, 30, "Viewport border in full screen");
setviewport(50, 50, 300, 220, 1);
clearviewport();
setcolor(YELLOW);
rectangle(0, 0, 250, 170);
line(0, 0, 250, 170);
outtextxy(8, 8, "Coordinates are now viewport-relative");
getch();
closegraph();
return 0;
}
Common Mistakes
- Forgetting that coordinates become viewport-relative.
- Using clip off (
0) and expecting hard clipping. - Calling
cleardevice()when you only needclearviewport().
Next: Text & Fonts for drawing labels inside custom viewport regions.