Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

R2_NOTCOPYPEN

R2_NOTMASKPEN
GDI R2_NOTMERGEPEN
R2_NOTXORPEN
R2_WHITE
R2_XORPEN
1 Device Context
int CDC::GetMapMode( );
int CDC:: SetMapMode(int fnMapMode);
1.1 Pribavljanje DC-a fnMapMode:
MM_TEXT
HDC GetDC( HWND hWnd) MM_HIENGLISH
HDC GetWindowDC( HWND hWnd) MM_HIMETRIC
CDC* CWnd::GetDC( ) MM_LOENGLISH
int CWnd::ReleaseDC( CDC* pDC ) MM_LOMETRIC
MM_TWIPS
MM_ISOTROPIC
1.2 Boja teksta i pozadine teksta MM_ANISOTROPIC

COLORREF CDC::GetTextColor( ); BOOL CDC::SetWindowExt(


COLORREF CDC::SetTextColor( COLORREF crColor ); int nXExtentW, // new horizontal window extent
COLORREF CDC::GetBkColor( ); int nYExtentW, // new vertical window extent );
COLORREF CDC:: SetBkColor( COLORREF crColor );
BOOL CDC:: SetViewportExt(
int nXExtentV, // new horizontal viewport extent
1.3 Boja pozadine int nYExtentV, // new vertical viewport extent );

BOOL CDC::SetWindowOrg(
int CDC::GetBkMode( );
int X, // new logical x-coordinate of window origin
int CDC::SetBkMode(int iBkMode);
int Y // new logical y-coordinate of window origin );
iBkMode:
TRANSPARENT
BOOL CDC::SetViewportOrg(
OPAQUE
int X, // new device x-coordinate of viewport origin
int Y // new device y-coordinate of viewport origin );
1.4 Modovi iscrtavanja void CWnd::GetClientRect( LPRECT lpRect ) const;

int CDC::GetROP2( );
int CDC::SetROP2(int fnDrawMode);
fnDrawMode: 1.5 Ispuna poligona
R2_BLACK
R2_COPYPEN
int GetPolyFillMode( HDC hdc);
R2_MASKNOTPEN
int SetPolyFillMode( HDC hdc, int iPolyFillMode);
R2_MASKPEN
iPolyFillMode:
R2_MASKPENNOT
ALTERNATE
R2_MERGENOTPEN
WINDING
R2_MERGEPEN
R2_MERGEPENNOT
R2_NOP
R2_NOT
1.6 Streching modovi 2 Olovke, četke i crtanje primitiva
int CDC::GetStretchBltMode( );
int CDC::SetStretchBltMode( int iStretchMode); 2.1 Olovke
iStretchMode:
BLACKONWHITE CPen::CPen( int fnPenStyle, int nWidth, COLORREF crColor);
COLORONCOLOR fnPenStyle:
HALFTONE PS_SOLID
STRETCH_ANDSCANS - Same as BLACKONWHITE. PS_DASH
STRETCH_DELETESCANS - Same as COLORONCOLOR. PS_DOT
STRETCH_HALFTONE - Same as HALFTONE. PS_DASHDOT
STRETCH_ORSCANS - Same as WHITEONBLACK. PS_DASHDOTDOT
WHITEONBLACK PS_NULL
PS_INSIDEFRAME

1.7 Snimanje i vraćanje stanja DC-ja BOOL CPen::CreatePenIndirect( LPLOGPEN lpLogPen );

virtual int CDC::SaveDC( ); typedef struct tagLOGPEN {


BOOL CDC::RestoreDC( int nSavedDC ); // specifies state to be restored UINT lopnStyle;
POINT lopnWidth;
COLORREF lopnColor;
} LOGPEN;

CPen::CPen(
int nPenStyle, // PS_GEOMETRIC, PS_COSMETIC , ...
int nWidth, // pen width
const LOGBRUSH *pLogBrush, // pointer to structure for brush attributes
int nStyleCount = 0, // length of array containing custom style bits
const DWORD* lpStyle // optional array of custom style bits
);

typedef struct tagEXTLOGPEN {


UINT elpPenStyle;
UINT elpWidth;
UINT elpBrushStyle;
COLORREF elpColor;
LONG elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
} EXTLOGPEN;

dwPenStyle:
PS_GEOMETRIC, PS_COSMETIC
PS_ALTERNATE, PS_SOLID, PS_DASH, ..., PS_USERSTYLE, PS_INSIDEFRAME
PS_ENDCAP_ROUND, PS_ENDCAP_SQUARE, PS_ENDCAP_FLAT
PS_JOIN_BEVEL, PS_JOIN_MITER, PS_JOIN_ROUND
2.2 Četke 2.5 Linije

CBrush::CBrush( COLORREF crColor ); BOOL MoveToEx(HDC hdc, int X, int Y, LPPOINT lpPoint);
BOOL CBrush::CreateSolidBrush( COLORREF crColor );‚ BOOL LineTo(HDC hdc, int nXEnd, int nYEnd);
BOOL CBrush::CreateHatchBrush( int nIndex, COLORREF crColor ); BOOL CDC::LineTo( int x, int y );
fnStyle: BOOL CDC::LineTo( POINT point );
HS_BDIAGONAL CPoint CDC::MoveTo( int x, int y );
HS_CROSS CPoint CDC::MoveTo( POINT point );
HS_DIAGCROSS
HS_FDIAGONAL BOOL Polyline( HDC hdc, CONST POINT *lppt, int cPoints );
HS_HORIZONTAL BOOL CDC::Polyline( LPPOINT lpPoints, int nCount );
HS_VERTICAL BOOL PolylineTo(HDC hdc, CONST POINT *lppt, DWORD cCount);
BOOL CDC::PolylineTo( const POINT* lpPoints, int nCount );
BOOL CBrush::CreatePatternBrush( CBitmap* pBitmap ); BOOL PolyPolyline( HDC hdc, CONST POINT *lppt, CONST DWORD *lpdwPolyPoints,
BOOL CBrush::CreateDIBPatternBrush( HGLOBAL hPackedDIB, UINT nUsage ); DWORD cCount );
BOOL CBrush::CreateDIBPatternBrush( const void* lpPackedDIB, UINT nUsage );

BOOL CBrush::CreateBrushIndirect( const LOGBRUSH* lpLogBrush ); 2.5 Poligon


typedef struct tagLOGBRUSH { BOOL Polygon( HDC hdc, CONST POINT *lpPoints, int nCount );
UINT lbStyle; // BS_SOLID, BS_PATTERN, BS_HATCHED, ... BOOL PolyPolygon( HDC hdc, CONST POINT *lpPoints, CONST INT *lpPolyCounts, int
COLORREF lbColor; // DIB_PAL_COLORS, DIB_RGB_COLORS nCount );
LONG lbHatch; // HS_BDIAGONAL, HS_CROSS, ...
} LOGBRUSH; BOOL Rectangle(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);

CPoint CDC::SetBrushOrg( int x, int y ); BOOL DrawEdge(HDC hdc, LPRECT qrc, UINT edge, UINT grfFlags);
CPoint CDC::SetBrushOrg( POINT point ); edge:
CPoint CDC::GetBrushOrg( ); BDR_RAISEDINNER
BOOL CGdiObject::UnrealizeObject() BDR_SUNKENINNER
BDR_RAISEDOUTER
BDR_SUNKENOUTER
2.3 Stock objekti grfFlags:
BF_RECT
CGdiObject* CDC::SelectStockObject( int nIndex ); BF_TOP
nIndex: BF_LEFT
BLACK_BRUSH, DKGRAY_BRUSH, GRAY_BRUSH, HOLLOW_BRUSH, BF_BOTTOM
LTGRAY_BRUSH, NULL_BRUSH, WHITE_BRUSH, BLACK_PEN, WHITE_PEN … BF_RIGHT
BF_TOPLEFT
BF_BOTTOMLEFT
2.4 Tačke BF_TOPRIGHT
BF_BOTTOMRIGHT
COLORREF GetPixel( HDC hdc, int XPos, int nYPos ); BF_DIAGONAL_ENDBOTTOMLEFT
COLORREF SetPixel( HDC hdc, int X, int Y, COLORREF crColor ); BF_DIAGONAL_ENDBOTTOMRIGHT
COLORREF CDC::GetPixel( int x, int y ); BF_DIAGONAL_ENDTOPLEFT
COLORREF CDC::GetPixel( POINT point ); BF_DIAGONAL_ENDTOPRIGHT
COLORREF CDC::SetPixel( int x, int y, COLORREF crColor );
COLORREF CDC::SetPixel( POINT point, COLORREF crColor );
2.6 Elipse 3 Regioni, metafajlovi, putanje i transformacije
BOOL Ellipse(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect); 3.1 Regioni
BOOL CreateRectRgn( int x1, int y1, int x2, int y2 );
BOOL CreateEllipticRgn( int x1, int y1, int x2, int y2 );
2.7 Zaobljeni pravougaonik BOOL CreatePolygonRgn( LPPOINT lpPoints, int nCount, int nMode ); //nMode može biti
ALTERNATE ili WINDING
BOOL RoundRect( HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int
nWidth, int nHeight ); int CRgn::CombineRgn( CRgn* pRgn1, CRgn* pRgn2, int nCombineMode );

nCombineMode: RGN_AND, RGN_COPY, RGN_DIFF, RGN_OR ili RGN_XOR


2.8 Pite
virtual int CDC::SelectClipRgn( CRgn* pRgn );
int CDC::SelectClipRgn( CRgn* pRgn, int nMode );
BOOL Pie(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect,
int nXRadial1, int nYRadial1, int nXRadial2, int nYRadial2);
BOOL CDC::FloodFill( int x, int y, COLORREF crColor );

2.9 Lukovi
3.2 Metafajlovi
BOOL Arc(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect,
CMetaFileDC::CMetaFileDC();
int nXStartArc, int nYStartArc, int nXEndArc, int nYEndArc);
int SetArcDirection( HDC hdc, int ArcDirection);
BOOL CMetaFileDC::CreateEnhanced( CDC* pDCRef, LPCTSTR lpszFileName, LPCRECT
ArcDirection:
lpBounds, LPCTSTR lpszDescription ) ;
AD_COUNTERCLOCKWISE
AD_CLOCKWISE
HENHMETAFILE CMetaFileDC::CloseEnhanced( ) ;

BOOL CDC::DeleteDC();
2.10 Odsečci

BOOL Chord(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, HENHMETAFILE GetEnhMetaFile( LPCTSTR lpszMetaFile)
int nXRadial1, int nYRadial1, int nXRadial2, int nYRadial2);
HENHMETAFILE CopyEnhMetaFile( HENHMETAFILE hemfSrc, LPCTSTR lpszFile)
2.11 Bezierove krive BOOL CDC::PlayMetaFile( HENHMETAFILE hEnhMetaFile, LPCRECT lpBounds)

BOOL PolyBezier(HDC hdc, CONST POINT *lppt, DWORD cPoints); BOOL DeleteEnhMetaFile( HENHMETAFILE hemf)
BOOL PolyBezierTo(HDC hdc, CONST POINT *lppt, DWORD cCount);

3.3 Putanje
BOOL CDC::BeginPath( );
BOOL CDC::EndPath( );

BOOL CDC::StrokePath( );
BOOL CDC::FillPath( );
BOOL CDC:: StrokeAndFillPath( );
BOOL CDC::SelectClipPath( int nMode ); 4 Fontovi
nMode: RGN_AND, RGN_COPY, RGN_DIFF, RGN_OR ili RGN_XOR

3.4 Transformacije 4.1 Metrika fonta

BOOL GetTextMetrics( HDC hdc, LPTEXTMETRIC lptm );


typedef struct _XFORM { // xfrm
BOOL CDC::GetTextMetrics( LPTEXTMETRIC lpMetrics );
FLOAT eM11;
FLOAT eM12;
typedef struct tagTEXTMETRIC {
FLOAT eM21;
LONG tmHeight;
FLOAT eM22;
LONG tmAscent;
FLOAT eDx;
LONG tmDescent;
FLOAT eDy;
LONG tmInternalLeading;
} XFORM;
LONG tmExternalLeading;
LONG tmAveCharWidth;
operacija eM11 eM12 eM21 eM22
LONG tmMaxCharWidth;
rotacija cos sin -sin cos LONG tmWeight;
LONG tmOverhang;
skaliranje horizontalno 0 0 vertikalno
skaliranje skaliranje LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
iskišenje 1 horizontalna vertikalna 1
konstanta konstanta BCHAR tmFirstChar;
proporcionalnosti proporcionalnosti BCHAR tmLastChar;
refleksija horizontalna 0 0 vertikalna BCHAR tmDefaultChar;
refleksiona refleksiona BCHAR tmBreakChar;
komponenta komponenta BYTE tmItalic;
BYTE tmUnderlined;
BOOL CDC::SetWorldTransform(CONST XFORM *lpXform); BYTE tmStruckOut;
BYTE tmPitchAndFamily;
int SetGraphicsMode( HDC hdc, int iMode ); BYTE tmCharSet;
iMode: GM_COMPATIBLE, GM_ADVANCED } TEXTMETRIC;

BOOL ModifyWorldTransform( HDC hdc, FW_DONTCARE 0


CONST XFORM *lpXform, DWORD iMode); FW_THIN 100
iMode: FW_EXTRALIGHT 200
MWT_IDENTITY – resetuje svetsku transformaciju (učitava se jedinična matrica i ignoriše se FW_ULTRALIGHT 200
prosleđena transf. matrica) FW_LIGHT 300
MWT_LEFTMULTIPLY – množi trenutnu transformacionu matricu sa prosleđenom sa leve FW_NORMAL 400
strane (prosleđena matrica je levi operand u množenju) FW_REGULAR 400
MWT_RIGHTMULTIPLY – množi trenutnu transformacionu matricu sa prosleđenom sa desne FW_MEDIUM 500
strane (prosleđena matrica je desni operand u množenju) FW_SEMIBOLD 600
FW_DEMIBOLD 600
BOOL CombineTransform( LPXFORM lpxformResult, FW_BOLD 700
CONST XFORM *lpxform1, FW_EXTRABOLD 800
CONST XFORM *lpxform2 FW_ULTRABOLD 800
); FW_HEAVY 900
lpxformResult– pokazivač na XFORM strukturu koja prihvata kombinovanu transformaciju FW_BLACK 900
(rezultujuća matrica)
lpxform1– pokazivač na XFORM strukturu prve transformacije (leva matrica)
lpxform2– pokazivač na XFORM strukturu druge transformacije (desna matrica)
4.2 Tipovi karaktera );

ANSI_CHARSET
DEFAULT_CHARSET 4.3 Veličina ispisanog stringa
OEM_CHARSET
SYMBOL_CHARSET CSize CDC::GetTextExtent( const CString& str );

DEFAULT_PITCH
FIXED_PITCH 4.4 Ispis teksta
VARIABLE_PITCH
BOOL TextOut( HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cbString );
FF_DECORATIVE BOOL CDC::TextOut( int x, int y, LPCTSTR lpszString, int nCount );
FF_DONTCARE BOOL CDC::TextOut( int x, int y, const CString& str );
FF_MODERN
FF_ROMAN UINT CDC::SetTextAlign( UINT nFlags );
FF_SCRIPT nFlags:
FF_SWISS TA_LEFT
TA_RIGHT
HFONT CreateFont ( TA_CENTER
int nHeight, // logical height of font TA_TOP
int nWidth, // logical average character width TA_BOTTOM
int nEscapement, // angle of escapement TA_BASELINE
int nOrientation, // base-line orientation angle TA_NOUPDATECP
int fnWeight, // font weight TA_UPDATECP
DWORD fdwItalic, // italic attribute flag
DWORD fdwUnderline, // underline attribute flag int CDC::DrawText( LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat );
DWORD fdwStrikeOut, // strikeout attribute flag int CDC::DrawText( const CString& str, LPRECT lpRect, UINT nFormat );
DWORD fdwCharSet, // character set identifier nFormat:
DWORD fdwOutputPrecision, // output precision DT_BOTTOM
DWORD fdwClipPrecision, // clipping precision DT_SINGLELINE
DWORD fdwQuality, // output quality DT_CENTER
DWORD fdwPitchAndFamily, // pitch and family DT_LEFT
LPCTSTR lpszFace // pointer to typeface name string DT_RIGHT
); DT_SINGLELINE
DT_TABSTOP
HFONT CFont::CreateFont ( DT_TOP
int nHeight, // logical height of font DT_VCENTER
int nWidth, // logical average character width
int nEscapement, // angle of escapement
int nOrientation, // base-line orientation angle 4.5 Standardni fontovi
int fnWeight, // font weight
DWORD fdwItalic, // italic attribute flag CGdiObject* CDC::SelectStockObject( int nIndex );
DWORD fdwUnderline, // underline attribute flag nIndex:
DWORD fdwStrikeOut, // strikeout attribute flag ANSI_FIXED_FONT
DWORD fdwCharSet, // character set identifier ANSI_VAR_FONT
DWORD fdwOutputPrecision, // output precision DEVICE_DEFAULT_FONT
DWORD fdwClipPrecision, // clipping precision DEFAULT_GUI_FONT
DWORD fdwQuality, // output quality OEM_FIXED_FONT
DWORD fdwPitchAndFamily, // pitch and family SYSTEM_FONT
LPCTSTR lpszFace // pointer to typeface name string
5.5 Kopiranje bitmape

BOOL CDC::BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc,
5 Bitmape DWORD dwRop );
dwRop:
BLACKNESS
5.1 Kreiranje DDB-a DSTINVERT
MERGECOPY
MERGEPAINT
BOOL CBitmap::CreateCompatibleBitmap(CDC* pDC, int nWidth, int nHeight );
NOTSRCCOPY
BOOL CBitmap::CreateBitmap( int nWidth, int nHeight, UINT nPlanes, UINT nBitcount,
NOTSRCERASE
const void* lpBits );
PATCOPY
PATINVERT
PATPAINT
5.2 Učitavanje DDB-a SRCAND
SRCCOPY
BOOL CBitmap::LoadBitmap( LPCTSTR pszResName ); SRCERASE
BOOL CBitmap::LoadBitmap( UINT nIDResource ); SRCINVERT
SRCPAINT
WHITENESS
5.3 Pribavljanje bitmape
BOOL CDC::PlgBlt( POINT lpPoint, CDC* pSrcDC, int xSrc, int ySrc, int nWidth, int nHeight,
int CBitmap::GetBitmap( BITMAP* pBitMap ); CBitmap& maskBitmap, int xMask, int yMask );
operator CBitmap::HBITMAP( );

typedef struct tagBITMAP { 5.6 Rad sa DIB


LONG bmType;
LONG bmWidth; typedef struct tagBITMAPFILEHEADER {
LONG bmHeight; WORD bfType;
LONG bmWidthBytes; DWORD bfSize;
WORD bmPlanes; WORD bfReserved1;
WORD bmBitsPixel; WORD bfReserved2;
LPVOID bmBits; DWORD bfOffBits;
} BITMAP; } BITMAPFILEHEADER;

DWORD CBitmap::SetBitmapBits( DWORD dwCount, const void* lpBits ); typedef struct tagBITMAPINFO {
DWORD CBitmap::GetBitmapBits( DWORD dwCount, LPVOID lpBits ); BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;
5.4 Selekcija u DC
typedef struct tagRGBQUAD {
CPen* SelectObject( CPen* pPen ); BYTE rgbBlue;
CBrush* SelectObject( CBrush* pBrush ); BYTE rgbGreen;
CFont* SelectObject( CFont* pFont ); BYTE rgbRed;
CBitmap* SelectObject( CBitmap* pBitmap ); BYTE rgbReserved;
int SelectObject( CRgn* pRgn ); } RGBQUAD;
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
OpenGL Fiksna funkcionalnost – Spisak funkcija
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage; 1. Uvod u OpenGL
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed; int ChoosePixelFormat( HDC hdc,
DWORD biClrImportant; CONST PIXELFORMATDESCRIPTOR * ppfd )
} BITMAPINFOHEADER; hdc – handle DC-a u kome se traži format piksela najpribližniji zadatom
ppfd – pokazivač na strukturu koja opisuje željeni format piksela
5.7 Klasa CDib Funkcija vraća indeks formata piksela najpribližniji zadatom formatu. Ukoliko ne
uspe, funkcija vraća 0.
CDib::CDib();
CDib::CDib(CBitmap& bitmap); BOOL SetPixelFormat( HDC hdc, int iPixelFormat,
CDib::CDib(CBitmap* bitmap); CONST PIXELFORMATDESCRIPTOR * ppfd )
DWORD CDib::Width(); hdc – handle DC-a čiji se format piksela postavlja
DWORD CDib::Height(); iPixelFormat – indeks koji određuje format piksela koji se postavlja
WORD CDib::NumColors(); ppfd – pokazivač na strukturu koja opisuje format piksela (uglavnom nema nikakvu
BOOL CDib::Paint(HDC hDC, CRect rcDC, CRect rcDIB); ulogu pri ovom pozivu)
DWORD CDib::Save(CFile& file);
DWORD CDib::Save(char* filename); Funkcija vraća TRUE, ukoliko postavljanje formata piksela uspe. U protivnom, vraća
DWORD CDib::Read(CFile& file); FALSE.
BOOL CDib::Read(char* filename);
HGLRC wglCreateContext( HDC hdc )
hdc – handle DC-a za koji se kreira odgovarajući OpenGL rendering context

5.8 Klasa DImage Funkcija kreira OpenGL rendering context pogodan za iscrtavanje na uređaju čiji je
DC prosleđen kao parametar. OpenGL rendering context ima isti format piksela kao
i prosleđeni DC. Ako funkcija uspe, vraća handle kreiranog OpenGL rendering
DImage(void);
context-a . U protivnom, vraća NULL.
DImage(CBitmap& bmp);
virtual ~DImage(void);
BOOL wglDeleteContext( HGLRC hglrc )
bool Load(CString fileName); // Učitava sliku iz datoteke čije se ime navodi hglrc - handle OpenGL rendering context koji funkcija briše
bool Save(CString fileName); // Upisuje sliku u datoteku čije se ime navodi Funkcija briše OpenGL rendering context čiji je handle prosleđen. Ako uspe,
void Draw(CDC* pDC, CRect rcImg, CRect rcDC); // Iscrtava sliku u datom DC-ju funkcija vraća TRUE. U suprotnom vraća FALSE.
int Width(){return m_nWidth;} // Širina u pikselima BOOL wglMakeCurrent( HDC hdc, HGLRC hglrc )
int Height(){return m_nHeight;} // Visina u pikselima
int BPP(){return m_nBPP;} // Broj bajtova po pikselu hdc – handle DC-a uređaja na kome će OpenGL funkcije koje slede vršiti iscrtavanje
hglrc - handle OpenGL rendering context-a koji postaje tekući za nit koja je pozvala
bool isValid(); ovu funkciju
Funkcija postavlja tekući OpenGL rendering context za nit koja je pozvala. Ako je
// Direktne izmene
hglrc NULL, funkcija oslobađa DC koji je do tada koristio OpenGL rendering
unsigned char* GetDIBBits(); // Vraća pointer na prvi bajt sa pikselima
context, i nakon toga deselektuje tekući rendering context.
void Update(); // Pozvati nakon direktne izmene bafera.

OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 1/13


BOOL SwapBuffers( HDC hdc ) GL_LINES – pojedinačne duži
GL_LINE_STRIP – serija međusobno povezanih duži
hdc – handle DC-a čiji se baferi menjaju GL_LINE_LOOP – petlja
GL_TRIANGLES – pojedinačni trouglovi
Funkcija zamenjuje prednji (front) i zadnji (back) bafer prozora, ako format piksela GL_TRIANGLE_STRIP – traka trouglova
uključuje back-bafer. Funkcija vraća TRUE, ako uspe. U protivnom, vraća FALSE. GL_TRIANGLE_FAN – lepeza trouglova
GL_QUADS – pojedinačni četvorouglovi
CDC* CWnd::GetDC( ) GL_QUAD_STRIP – traka četvorouglova
GL_POLIGON – poligon
Funkcija članica prozora (CWnd). Vraća pokazivač na DC datog prozora.
Ove dve funkcije uvek idu u paru. Između njih navode se definicije temena. Tip
int CWnd::ReleaseDC(CDC* pDC) primitive koji se kreira zavisi od parametra prosleđenog funkciji glBegin().

pDC – pokazivač na DC koji se oslobađa void glPointSize(GLfloat size) ;

Funkcija članica prozora (CWnd). Oslobađa DC, čiji se pokazivač prosleđuje kao size – veličina tačke
parametar. Vraća 0 ako ne uspe. U protivnom vrednost različitu od 0.
Definiše veličinu tačke (primitive GL_POINT) u pikselima.

void glGetBooleanv( GLenum pname, GLboolean * params );


void glGetDoublev ( GLenum pname, GLdouble * params );
void glGetFloatv ( GLenum pname, GLfloat * params );
2. Crtanje primitiva void glGetIntegerv( GLenum pname, GLint * params );

void glColor3{ubsidf}(TYPE red, TYPE green, TYPE blue) ; pname – ime parametra koji je potrebno očitati. U ovom poglavlju korišćeni su
void glColor4{ubsidf}(TYPE red, TYPE green, TYPE blue, TYPE alpha) ; sledeći parametri:
void glColor{34}{ubsidf}v( const TYPE *v ); GL_POINT_SIZE – veličina tačke (GL_POINT) u pikselima,
GL_POINT_SIZE_GRANULARITY – rezolucija sa kojom se može
red – intenzitet crvene komponente menjati veličina tačke,
green – intenzitet zelene komponente GL_POINT_SIZE_RANGE – opseg u kome se može menjati veličina
blue – intenzitet plave komponente tačke,
aplha – intenzitet alpha komponente (providnost) GL_LINE_WIDTH – debljina linije u pikselima,
v – pokazivač na polje koje sadrži RGB(A) komponente boje GL_LINE_WIDTH_GRANULARITY – rezolucija sa kojom se može
menjati debljina linije,
Postavlja tekuću boju. Primenjuje se na sve primitive koje se iscrtavaju nakon poziva GL_LINE_WIDTH_RANGE – opseg u kome se može menjati
ove funkcije. debljina linije,
GL_LINE_STIPPLE_PATTERN – tekući šablon linije,
void glVertex2{dfis}( TYPE x, TYPE y ); GL_LINE_STIPPLE_REPEAT – faktor množenja (ponavljanja)
void glVertex3{dfis}( TYPE x, TYPE y , TYPE z); šablona,
void glVertex4{dfis}( TYPE x, TYPE y , TYPE z, TYPE w); GL_LINE_STIPPLE – indikator da li je uključen šablon
void glVertex{234}{dfis}v( const TYPE *v);
params – očitana vrednost (ili vrednosti).
x, y, z, w – koordinate
v – pokazivač na polje sa koordinatama Navedene funkcije služe za očitavanje različitih parametara i stanja u kome se nalazi
OpenGL rendering context. U OpenGL-u 1.1 mogu se na ovaj način očitati preko
Definiše prostorne koordinate temena. 200 različitih vrednosti.

void glBegin( GLenum mode ); / void glEnd(); void glLineWidth(GLfloat width);

mode – tip primitive koja se kreira na osnovu definicije prostornih koordinata. width – debljina linije u pikselima
Može imati jednu od sledećih vrednosti:
GL_POINTS – pojedinačne tačke Postavlja debljinu linije na zadatu vrednost, pod uslovom da se nalazi u granicama

OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 2/13 OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 3/13
koje su određene parametrom GL_LINE_WIDTH_RANGE i sa korakom void glCullFace( GLenum mode );
GL_LINE_WIDTH_GRANULARITY.
mode – definiše da li će poligoni koji se vide sa prednje ili zadnje strane biti odbačeni
void glLineStipple(GLint factor, GLushort pattern); prilikom iscrtavanja. Može imati jednu od sledećih vrednosti:
GL_FRONT – odbacuju se poligoni koji se vide sa prednje strane,
factor – faktor kojim se množi šablon, GL_BACK – odbacuju se poligoni koji se vide sa zadnje strane,
pattern – sam šablon. GL_FRONT_AND_BACK –poligoni se odbacuju bez obzira sa koje
se strane vide.
Definiše šablon linije.
Definiše da li će poligon biti iscrtan zavisno od stane koja je vidljiva.
void glEnable(GLenum cap) / void glDisable(GLenum cap)
void glVertexPointer( GLint size, GLenum type, GLsizei stride,
cap – stanje koje se uključuje/isključuje. Može imati preko 40 različitih vrednosti, ne const GLvoid *pointer);
računajući podoblike. U ovom poglavlju koriste se samo:
GL_LINE_STIPPLE – uključuje/isključuje šablon za linije, size – broj koordinata po jednom temenu ( 2, 3 ili 4 ),
GL_CULL_FACE – uključuje/isključuje odbacivanje poligona koji type – tip podataka u polju (GL_SHORT, GL_INT, GL_FLOAT, ili GL_DOUBLE),
se vide sa prednje ili zadnje strane. stride – rastojanje u bajtovima između dva sukcesivna temena,
pointer – pokazivač na polje prostornih koordinata temena.
Ovaj par funkcija uključuje/isključuje odgovarajuće stanje u OpenGL rendering
context-u. Definiše memorijsku organizaciju polja prostornih koordinata temena i pokazivač na
dato polje.
void glPolygonMode(GLenum face, GLenum mode);
void glColorPointer( GLint size, GLenum type, GLsizei stride,
face – strana poligona za koju važi dati način iscrtavanja. Može imati jednu od const GLvoid *pointer);
sledećih vrednosti:
GL_FRONT – prednja, size – broj koordinata po jednom temenu ( 3 ili 4 ),
GL_BACK – zadnja, type – tip podataka u polju (GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT,
GL_FRONT_AND_BACK – i prednja i zadnja. GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, ili
GL_DOUBLE),
mode – način iscrtavanja. Može imati jednu od sledećih vrednosti: stride – rastojanje u bajtovima između dva sukcesivna temena,
GL_POINT – tačke, pointer – pokazivač na polje boja temena.
GL_LINE – linije,
GL_FILL – ispuna. Definiše memorijsku organizaciju polja boja temena i pokazivač na dato polje.

Definiše način icrtavanja trouglova, četvorouglova i poligona. Moguće je iscrtavati void glEnableClientState(GLenum array);
samo tačke u temenima (GL_POINT), linije na ivicama (GL_LINE) ili spuniti čitavu void glDisableClientState(GLenum array) ;
površinu (GL_FILL). Podrazumevano iscrtavanje je GL_FILL.
array – definiše polje atributa temena koje se aktivira/deaktivira. U ovom poglavlju
void glFrontFace(GLenum mode) korišćene su sledeće vrednosti:
GL_VERTEX_ARRAY – polje prostornih koordinata temena,
mode – redosled zadavanja temena. Može imati jednu od sledeće dve vrednosti: GL_COLOR_ARRAY – polje boja temena,
GL_CCW – prednja strana postaje ona koja ima orijentaciju suprotnu
od kretanja kazaljki na časovniku (ovo je podrazumevano Aktivira/deaktivira odgovarajuće polje atributa temena.
stanje),
GL_CW – prednja strana postaje ona koja ima orijentaciju u pravcu void glArrayElement( GLint i );
kretanja kazaljki na časovniku.
i – indeks temena, u aktiviranim poljima temena, koje se iscrtava
Definiše pozitivnu orijentaciju, tj. orijentaciju strane trougla, četvorougla ili poligona
koja se smatra prednjom. Javlja se između poziva funkcija glBegin() i glEnd() i služi za iscrtavanje primitiva
korišćenjem polja temena, proizvoljnim „skakanjem“ po polju i pristupom
pojedinačnim elementima. Koriste se atributi iz svih aktiviranih polja, a tip primitive
koja se formira zavisi od parametra funkcije glBegin().

OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 4/13 OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 5/13
void glLoadMatrix{fd}( const TYPE *m );
void glDrawArrays( GLenum mode, GLint first, GLsizei count );
m – pokazivač na matricu dimezija 44 smeštene u vektor po kolonama
mode – tip primitive koja se formira (GL_POINTS, GL_LINES, itd.)
first – indeks prvog temena kome se pristupa u svim aktivnim poljima Zamenjuje matricu na vrhu tekućeg magacina matrica prosleđenom matricom.
count – broj temena koja se koriste za formiranje primitiva
void glLoadIdentity( );
Iscrtava primitive definisane parametrom mode, sekvencijalnim pristupom
elementima svih aktivnih polja temena i njihovih atributa, počev od indeksa first, a Zamenjuje matricu na vrhu tekućeg magacina matrica jediničnom matricom.
zaključno sa indeksom first+count-1.
void glMultMatrix{fd}( const TYPE *m );
void glDrawElements( GLenum mode, GLsizei count, GLenum type,
const GLvoid *indices ); m – pokazivač na matricu dimezija 44 smeštene u vektor po kolonama

mode – tip primitive koja se formira (GL_POINTS, GL_LINES, itd.) Množi matricu na vrhu tekućeg magacina matrica (C) prosleđenom matricom (M) sa
count – broj elemenata u polju indeksa desne strane. C = CM
type – tip podataka smeštenih u polju indeksa
indices – pokazivač na polje indeksa void glTranslate{fd}( TYPE x, TYPE y, TYPE z );

Iscrtava primitive definisane parametrom mode, pristupom elementima svih aktivnih x, y, z – koordinate vektora translacije
polja temena i njihovih atributa na osnovu polja indeksa, na koje ukazuje pokazivač
indices. Broj elemenata u polju indeksa definisan je parametrom count, a njihov tip Pomera koordinatni početak lokalnog koordinatnog sistema u tačku (x, y, z).
parametrom type.
void glRotate{fd}( TYPE angle, TYPE x, TYPE y, TYPE z );
void glShadeModel( GLenum mode )
angle – ugao rotacije zadat u stepenima
mode – način senčenja. Može imati jednu od sledećih vrednosti: x, y, z – koordinate vektora translacije
GL_FLAT – jednobojno senčenje,
GL_SMOOTH – umekšano senčenje (boje se interpoliraju na osnovu Vrši rotaciju u smeru suprotnom od kazaljki na časovniku za ugao angle oko vektora
vrednosti zadatih u temenima). [x, y, z].

Definiše način senčenja poligona. Podrazumevano je umekšano senčenje, kod koga void glScale{fd}( TYPE x, TYPE y, TYPE z );
se boja piksela u unutrašnjosti poligona izračunava interpolacijom boje temena. Kod
jednobojnog senčenja, boja poslednjeg temena u primitivi definiše boju čitave x, y, z – faktori skaliranja po X, Y i Z-osi, respektivno
primitive (osim kod poligona, gde prvo teme definiše boju primitive).
Vrši skaliranje po X, Y i Z-osi za zadate vrednosti.

void glEnable(GLenum cap) / void glDisable(GLenum cap)

3. Pogled u 3D cap – stanje koje se uključuje/isključuje. Može imati preko 40 različitih vrednosti, ne
računajući podoblike. U ovom poglavlju koriste se samo 3:
GL_NORMALIZE – uključuje/isključuje automatsku normalizaciju vektora
void glMatrixMode( GLenum mode); normala
GL_DEPTH_TEST – uključuje/isključuje poređenje „dubine“
mode – magacin matrica koji se selektuje, može imati jednu od sledećih vrednosti: fragmenata i ažuriranje Z-bafera
GL_MODELVIEW, GL_CULL_FACE – uključuje/isključuje odbacivanje primitiva
GL_PROJECTION i u zavisnosti od orijentacije
GL_TEXTURE
Ovaj par funkcija uključuje/isključuje odgovarajuće stanje u OpenGL rendering
Selektuje tekući magacin matrica. context-u

OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 6/13 OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 7/13
void glPushMatrix( ) / void glPopMatrix( ) Koordinata (0,0) odgovara donjem levom uglu prozora.

Ovaj par funkcija menja stanje selektovanog magacina matrica. Funkcija void glClearDepth( GLclampd depth );
glPushMatrix() kopira matricu na vrhu i smešta je u magacin. Nakon poziva ove
funkcije i na vrhu magacina i ispod njega nalaze se iste matrice. Funkcija depth – vrednost koja se koristi za „čišćenje“ Z-bafera
glPopMatrix() uklanja matricu sa vrha magacina.
Definiše vrednost iz intervala [0, 1] koja se upisuje u sve lokacije Z-bafera prilikom
void gluLookAt( GLdouble eyex, GLdouble eyey, GLdouble eyez, poziva funkcije glClear() ukoliko je postavljen odgovarajući fleg.
GLdouble centerx, GLdouble centery, GLdouble centerz,
GLdouble upx, GLdouble upy, GLdouble upz ); void glClear( GLbitfield mask );

eyex, eyey, eyez – pozicija oka posmatrača mask – polje flegova (indikatora) koji sve baferi trebaju biti obrisani pri pozivu ove
centerx, centery, centerz – tačka u koju je usmeren pogled funkcije. Koristi se bitska „ili“ kombinacija sledećih predefinisani vrednosti:
upx, upy, upz – vektor vertikale GL_COLOR_BUFFER_BIT – bafer u kome se formira slika
za prikaz (framebuffer)
Definiše transformaciju pogleda. GL_DEPTH_BUFFER_BIT – Z-bafer

void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, Briše specificirane bafere, odnosno postavlja vrednosti definisane odgovarajućim
GLdouble top, GLdouble near, GLdouble far ); funkcijama. Bafer slike ispunjuje se bojom definisanom funkcijom glClearColor(), a
Z-bafer vrednošću postavljenom funkcijom glClearDepth().
left, right – koordinate leve i desne vertikalne ravni odsecanja
bottom, top – koordinate donje i gornje horizontalne ravni odsecanja
near, far – udaljenost prednje i zadnje ravni odsecanja od posmatrača

Definiše ortografsku projekciju.


4. Osvetljenje
void glFrustum( GLdouble left, GLdouble right, GLdouble bottom,
GLdouble top, GLdouble near, GLdouble far ); void glNormal3{bsidf}(TYPE nx, TYPE ny, TYPE nz)
void glNormal3{bsidf}v(const TYPE *v)
left, right – x-koordinate leve i desne ravni odsecanja na preseku sa prednjom
ravni odscanja nx, ny, nz – koordinate vektora normale
bottom, top – y-koordinate donje i gornje ravni odsecanja na preseku sa prednjom v – koordinate vektora normale zadate kao vektor
ravni odscanja
near, far – udaljenost prednje i zadnje ravni odsecanja od posmatrača Definiše normalu u temenima objekta.

Definiše perspektivnu projekciju. void glEnable(GLenum cap) / void glDisable(GLenum cap)

void gluPerspective( GLdouble fovy, GLdouble aspect, cap – stanje koje se uključuje/isključuje. Može imati preko 40 različitih vrednosti, ne
GLdouble near, GLdouble far ); računajući podoblike. U ovoj glavi koriste se samo 3:
GL_NORMALIZE – uključuje/isključuje automatsku normalizaciju vektora
fovy – ugao vidnog polja u YZ-ravni izražen u stepenima normala
aspect – odnos širine i visine vidnog polja GL_LIGHTING – uključuje osvetljenje
near, far – udaljenost prednje i zadnje ravni odsecanja od posmatrača GL_LIGHTi – uključuje i-ti izvor svetlosti (npr. GL_LIGHT1)

Definiše perspektivnu projekciju. Ovaj par funkcija uključuje/isključuje odgovarajuće stanje u OpenGL rendering
context-u
void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
glMaterial{fi}[v] (GLenum face, GLenum pname, TYPE param)
x, y – koordinate donjeg levog temena pravougaonika u kome se prikazuje slika
width, height– širina i visina pravougaonika u kome se prikazuje slika face – stranu poligona na koju se primenjuje dati materijal i može imati vrednost:
GL_FRONT – samo prednja strana,
Definiše viewport transformaciju, tj. deo prozora u kome se prikazuje slika. GL_BACK – samo zadnja strana ili
OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 8/13 OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 9/13
GL_FRONT_AND_BACK – i prednja i zadnja strana.
5. Teksture
pname – naziv parametra čija se vrednost modifikuje, može biti:
GL_AMBIENT – ambijentalna boja, void glPixelStore{if}(GLenum pname, TYPE param);
GL_DIFFUSE – difuziona boja,
GL_AMBIENT_AND_DIFFUSE – ambijentalna i difuziona boja pname – naziv parametra (postoji 12 različitih parametara: GL_PACK_SWAP_BYTES,
GL_SPECULAR – reflektovana boja (odsjaj), GL_PACK_LSB_FIRST, GL_PACK_ROW_LENGTH,
GL_EMISSION – emisiona boja, ili GL_PACK_SKIP_PIXELS, GL_PACK_SKIP_ROWS,
GL_SHININESS – eksponent odsjaja GL_PACK_ALIGNMENT, GL_UNPACK_SWAP_BYTES,
GL_UNPACK_LSB_FIRST, GL_UNPACK_ROW_LENGTH,
param – vrednost na koju se postavlja prethodni parametar GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS,
GL_UNPACK_ALIGNMENT)
Funkcija postavlja sve parametre materijala. param – vrednost parametra

void glLightModel{fi}[v] ( GLenum pname, TYPE param ) Postavlja modove smeštanja piksela. Korišćen je samo parametar GL_UNPACK
_ALIGMENT za postavljanje poravnanja nezapakovanih tekstura.
pname – naziv parametra čija se vrednost modifikuje, a može biti:
GL_LIGHT_MODEL_AMBIENT – globalno ambijentalno osvetljenje, void glTexEnv{if}( GLenum target, GLenum pname, GLint param );
GL_LIGHT_MODEL_LOCAL_VIEWER – lokalni ili udaljeni
posmatrač, target – mora biti postavljen na GL_TEXTURE_ENV
GL_LIGHT_MODEL_TWO_SIDE – jednostrano ili dvostrano pname – mora biti postavljen na GL_TEXTURE_ENV_MODE
osvetljenje param – način primene teksture, može imati sledeće vrednosti:
param – vrednost na koju se postavlja prethodni parametar GL_REPLACE – potpuno menja boju fragmenta podacima iz teksture,
GL_DECAL – mešanje boje fragmenta i teksture definisano je providnošću
Funkcija postavlja parametre modela osvetljenja. teksture,
GL_MODULATE – boja fragmenata je „modulisana“ teksturom i
void glLight{if}[v](GLenum light, GLenum pname, TYPE param) GL_BLEND – boja se dobija mešanjem boje fragmenta, teksture i posebno
zadate boje.
light – izvor svetlosti čiji se parametar modifikuje, može biti: GL_LIGHT0,
GL_LIGHT1, GL_LIGHT2, GL_LIGHT3, GL_LIGHT4, GL_LIGHT5, Definiše način primene teksture.
GL_LIGHT6, ili GL_LIGHT7
void glTexEnv{if}v(GLenum target, GLenum pname, GLint param );
pname – naziv parametra čija se vrednost modifikuje, može biti:
GL_AMBIENT – ambijentalna komponenta, target – mora biti postavljen na GL_TEXTURE_ENV
GL_DIFFUSE – difuziona komponenta, pname – mora biti postavljen na GL_TEXTURE_ENV_COLOR
GL_SPECULAR – refleksiona komponenta, param – definiše RGBA vrednost boje koja se koristi za mešanje.
GL_POSITION – pozicija,
GL_CONSTANT_ATTENUATION – konstantni faktor slabljenja, Definiše boju koja se koristi u modu GL_BLEND.
GL_LINEAR_ATTENUATION – lineari faktor slabljenja,
GL_QUADRATIC_ATTENUATION – kvadratni faktor slabljenja, void glGenTextures(GLsizei n, GLuint *textureNames);
GL_SPOT_DIRECTION – orijentacija usmerenog izvora svetlosti,
GL_SPOT_CUTOFF – ugao rasipanja svetlosti u odnosu na dati pravac, n – broj identifikatora koji se vraćaju
GL_SPOT_EXPONENT – eksponent distribucije svetlosti. textureNames – polje slobodnih identifikatora

Vraća n trenutno slobodnih identifikatora, u obliku neoznačenih celih brojeva, koje


param – vrednost na koju se postavlja prethodni parametar
smešta u polje textureNames.
Funkcija postavlja parametre izvora osvetljenja.
void glBindTexture(GLenum target, GLuint textureName);

target – tip teksture koja se aktivira. Može imati jednu od sledećih vrednosti:
GL_TEXTURE_1D – 1D tekstura,
GL_TEXTURE_2D – 2D tekstura,
OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 10/13 OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 11/13
GL_TEXTURE_3D – 3D tekstura, void glTexParameteri(GLenum target, GLenum pname, TYPE param);
GL_TEXTURE_CUBE_MAP – kubna tekstura,
textureName – identifikator teksture koja se aktivira. target – tip teksture (GL_TEXTURE_2D),
pname – naziv parametra koji se postavlja (GL_TEXTURE_MAG_FILTER,
Kada se prvi put pozove za odgovarajući identifikator, dobijen pozivom funkcije GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S,
glGenTextures(), objekat teksture se kreira i aktivira (selektuje). Sve kasnije GL_TEXTURE_WRAP_T),
modifikacije parametara odnosiće se na selektovani objekat. Kada se pozove za param – vrednost na koju se postavlja parametar (GL_NEAREST, GL_LINEAR,
prethodno kreirani objekat, onda samo aktivira dati objekat. A kada se pozove za GL_NEAREST_MIPMAP_NEAREST,
vrednost 0, isključuje rad sa objektima tekstura i aktivira neimenovanu GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_NEAREST,
„podrazumevanu“ teksturu. GL_LINEAR_MIPMAP_LINEAR, GL_CLAMP, GL_REPEAT).

void glTexImage2D(GLenum target, GLint level, GLint internalFormat, Definiše različite parametre tekstura.
GLsizei width, GLsizei height, GLint border,
GLenum format, GLenum type, const GLvoid *texels); void glGetIntegerv( GLenum pname, GLint * params );

target – tip teksture (GL_TEXTURE_2D), pname – ime parametra koji je potrebno očitati. U ovom poglavlju korišćen je
level – nivo teksture koji se popunjava, samo sledeći parametar:
internalFormat – broj komponenata jednog teksela (1, 2, 3, 4 ili jednu od 55 drugih GL_MAX_TEXTURE_SIZE – maksimalna dimenzija teksture u
predefinisanih vrednosti), najčešće koristimo GL_RGB (3) ili GL_RGBA (4) tekselima.
width – širina u tekselima, params – očitana vrednost (ili vrednosti).
height – visina u tekselima,
border – širina okvira, Navedene funkcije služe za očitavanje različitih parametara i stanja u kome se nalazi
format – format teksela (GL_RGB, GL_RGBA, ...), OpenGL rendering context. U OpenGL-u 1.1 mogu se na ovaj način očitati preko 200
type – tip podataka koji formiraju teksel (GL_UNSIGNED_BYTE, ...), različitih vrednosti.
texels – pokazivač na bafer sa podacima, koje treba preneti u teksturu.
void glTexCoord{l234}{sifd}(TYPE coords);
Definiše format teksture i prenosi podatke. void gITexCoord{l234){sifd}v(const TYPE *coords);

int gluBuild2DMipmaps(GLenum target, GLint internalFormat, coords – teksturne koordinate datog temena
GLint width, GLint height,
GLenum format, GLenum type, void *texels); Postavlja teksturne koordinate temena čija definicija sledi nakon poziva ove funkcije.

target – tip teksture (GL_TEXTURE_2D), void glEnable(GLenum cap) / void glDisable(GLenum cap)
internalFormat – broj komponenti jednog teksela ( vidi glTexImage2D() )
width, height – širina i visina u tekselima, cap – stanje koje se uključuje/isključuje. Može imati preko 40 različitih vrednosti, ne
format – format teksela (GL_RGB, GL_RGBA, ...), računajući podoblike. U ovoj glavi koriste se samo:
type – tip podataka koji formiraju teksel (GL_UNSIGNED_BYTE, ...), GL_TEXTURE_2D – uključuje/isključuje 2D teksture.
texels – pokazivač na bafer sa podacima, koje treba preneti u teksturu.
Ovaj par funkcija uključuje/isključuje odgovarajuće stanje u OpenGL rendering
Definiše format teksture, prenosi podatke i formira kompletnu mipmapu. Automatski context-u.
prilagođava najviši nivo detalja tako da dimenzije budu stepen broja 2.
void glDeleteTextures(GLsize n, const GLuint *textureNames);
AUX_RGBImageRec* auxDIBImageLoad(LPCWSTR fileName);
n – broj tekstura koje se brišu
fileName – naziv (BMP) datoteke iz koje se učitava slika textureNames – polje identifikatora tekstura.

Učitava sliku u strukturu AUX_RGBImageRec koja ima tri atributa: Briše teksture sa identifikatorima koji su navedeni u polju textureNames.
- data – bafer u kome je smeštena sadržina slike (pikseli),
- sizeX – širina slike i
- sizeY – visina slike.
Ova funkcija pripada pomoćnoj biblioteci glaux.lib, koja se mora uključiti u projekat da
bi funkcija bila dostupna.

OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 12/13 OpenGL Fiksna funkcionalnost – Spisak funkcija (by Aleksandar Dimitrijević) 13/13

You might also like