Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
AG_GLVIEW(3)		    Library Functions Manual		  AG_GLVIEW(3)

NAME
       AG_GLView -- low-level OpenGL context widget

SYNOPSIS
       #include	<agar/core.h>
       #include	<agar/gui.h>

DESCRIPTION
       DEPRECATED:  Since  Agar	 1.5.0,	 AG_GLView  has	been superceded	by the
       AG_WIDGET_USE_OPENGL feature of the base	AG_Widget(3) class.

       The AG_GLView widget provides a low-level OpenGL	context.  In order  to
       be  useful,  two	 callbacks  should be implemented: scale() and draw().
       The scale() function is expected	to set the projection matrix.  For ex-
       ample, the scale	function may be	a simple call to glOrtho(3).

       The draw() function renders the scene to	the display.   Before  calling
       draw(),	AG_GLView  calls  glViewport(3).  It also sets the GL_TEXTURE,
       GL_PROJECTION, GL_MODELVIEW matrices and	saves the state	of  the	 clip-
       ping planes by calling glPushAttrib(3) with GL_TRANSFORM_BIT.

       The  AG_GLView  widget  is not redrawn automatically by default.	 It is
       the responsibility of the caller	to set the  redraw  policy  either  by
       calling AG_Redraw(3) to explicitely request a redraw, configuring a pe-
       riodic  update  interval	using AG_RedrawOnTick(3), or a conditional up-
       date using AG_RedrawOnChange(3).

INHERITANCE HIERARCHY
       AG_Object(3) -> AG_Widget(3) -> AG_GLView.

INITIALIZATION
       AG_GLView * AG_GLViewNew(AG_Widget *parent, Uint	flags)

       void AG_GLViewSetBgColor(AG_GLView *glv,	const AG_Color *c)

       void AG_GLViewSizeHint(AG_GLView	*glv, int w, int h)

       void AG_GLViewDrawFn(AG_GLView *glv, void (*fn)(AG_Event	*), const char
       *args, ...)

       void AG_GLViewOverlayFn(AG_GLView *glv, void (*fn)(AG_Event  *),	 const
       char *args, ...)

       void  AG_GLViewUnderlayFn(AG_GLView *glv, void (*fn)(AG_Event *), const
       char *args, ...)

       void AG_GLViewScaleFn(AG_GLView *glv,  void  (*fn)(AG_Event  *),	 const
       char *args, ...)

       void  AG_GLViewKeydownFn(AG_GLView  *glv, void (*fn)(AG_Event *), const
       char *args, ...)

       void AG_GLViewKeyupFn(AG_GLView *glv,  void  (*fn)(AG_Event  *),	 const
       char *args, ...)

       void  AG_GLViewButtondownFn(AG_GLView  *glv,  void  (*fn)(AG_Event  *),
       const char *args, ...)

       void AG_GLViewButtonupFn(AG_GLView *glv,	void (*fn)(AG_Event *),	 const
       char *args, ...)

       void  AG_GLViewMotionFn(AG_GLView  *glv,	 void (*fn)(AG_Event *), const
       char *args, ...)

       The AG_GLViewNew() function allocates, initializes, and attaches	a  new
       AG_GLView widget.  Acceptable flags include:

       AG_GLVIEW_BGFILL	  Clear	the widget background with the specified color
			  (see AG_GLViewSetBgColor()).

       AG_GLVIEW_HFILL	  Expand horizontally in parent	container.

       AG_GLVIEW_VFILL	  Expand vertically in parent container.

       AG_GLVIEW_EXPAND	  Shorthand for	AG_GLVIEW_HFILL	| AG_GLVIEW_VFILL.

       AG_GLViewSetBgColor() specifies the background color (effective only if
       AG_GLVIEW_BGFILL	is set).

       AG_GLViewSizeHint() suggests an initial widget size in pixels.

       The  AG_GLViewDrawFn() registers	a the rendering	function (specified in
       AG_Event(3) format).  Prior to invoking this function, the widget  will
       set  the	 glViewport(3) to the widget area, save	the current OpenGL ma-
       trices and load the widget-specific matrices.

       AG_GLViewOverlayFn() registers a	function that will  be	invoked	 after
       rendering,  after the GUI matrices and viewport have been restored.  It
       is typically used to draw text or controls independently	of the projec-
       tion and	viewing	matrices.  Similarly, AG_GLViewUnderlayFn()  registers
       a function that will be invoked before rendering.  Both overlay and un-
       derlay  callbacks  may  invoke  standard	 Agar  GUI  primitives such as
       AG_DrawRect(3) or AG_WidgetBlit(3).

       AG_GLViewScaleFn() registers a function to invoke whenever  the	widget
       is resized.

       AG_GLViewKeydownFn(),	AG_GLViewKeyupFn(),   AG_GLViewButtondownFn(),
       AG_GLViewButtonupFn() and AG_GLViewMotionFn()  register	general	 event
       handler	 functions   that  will	 be  forwarded	`key-down',  `key-up',
       `mouse-button-down', `mouse-button-up' and `mouse-motion'  events,  re-
       spectively.

BINDINGS
       The AG_GLView widget does not provide any binding.

EVENTS
       The AG_GLView widget does not generate any event.

STRUCTURE DATA
       For the AG_GLView object:
       float mProjection[16]   Saved Projection	matrix (4x4, column-major).
       float mModelview[16]    Saved Modelview matrix.
       float mTexture[16]      Saved Texture matrix.

EXAMPLES
       See tests/glview.c in the Agar source distribution.

SEE ALSO
       AG_Color(3), AG_Intro(3), AG_Widget(3), AG_Window(3), SG(3), SG_View(3)

HISTORY
       The  AG_GLView widget first appeared in Agar 1.2.  As of	Agar 1.5.0, it
       has  been   superceded	by   the   AG_WIDGET_USE_OPENGL	  feature   of
       AG_Widget(3).

Agar 1.7		       December	21, 2022		  AG_GLVIEW(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=AG_GLView&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help