JOGL v2.6.0-rc-20250712
JOGL, High-Performance Graphics Binding for Java™ (public API).
com.jogamp.opengl.test.junit.jogl.glu.TestBug463ScaleImageMemoryAWT Class Reference

Tests for bug 463, where gluScaleImage uses up all system memory. More...

Inheritance diagram for com.jogamp.opengl.test.junit.jogl.glu.TestBug463ScaleImageMemoryAWT:
Collaboration diagram for com.jogamp.opengl.test.junit.jogl.glu.TestBug463ScaleImageMemoryAWT:

Public Member Functions

void init (final GLAutoDrawable drawable)
 Called by the drawable immediately after the OpenGL context is initialized. More...
 
void display (final GLAutoDrawable drawable)
 Called by the drawable to initiate OpenGL rendering by the client. More...
 
void reshape (final GLAutoDrawable drawable, final int x, final int y, final int width, final int height)
 Called by the drawable during the first repaint after the component has been resized. More...
 
void dispose (final GLAutoDrawable drawable)
 Notifies the listener to perform the release of all OpenGL resources per GLContext, such as memory buffers and GLSL programs. More...
 
void test01 () throws InterruptedException
 
- Public Member Functions inherited from com.jogamp.opengl.test.junit.util.UITestCase
int getMaxTestNameLen ()
 
String getSnapshotFilename (final int sn, String postSNDetail, final GLCapabilitiesImmutable caps, final int width, final int height, final boolean sinkHasAlpha, String fileSuffix, final String destPath)
 
void snapshot (final int sn, final String postSNDetail, final GL gl, final GLReadBufferUtil readBufferUtil, final String fileSuffix, final String destPath)
 Takes a snapshot of the drawable's current front framebuffer. More...
 
void init (GLAutoDrawable drawable)
 Called by the drawable immediately after the OpenGL context is initialized. More...
 
void dispose (GLAutoDrawable drawable)
 Notifies the listener to perform the release of all OpenGL resources per GLContext, such as memory buffers and GLSL programs. More...
 
void display (GLAutoDrawable drawable)
 Called by the drawable to initiate OpenGL rendering by the client. More...
 
void reshape (GLAutoDrawable drawable, int x, int y, int width, int height)
 Called by the drawable during the first repaint after the component has been resized. More...
 

Static Public Member Functions

static void main (final String args[])
 
- Static Public Member Functions inherited from com.jogamp.opengl.test.junit.util.UITestCase
static void setResetXRandRIfX11AfterClass ()
 
static int resetXRandRIfX11 ()
 Iterates through all outputs and sets the preferred mode and normal rotation using RandR 1.3. More...
 
static int processCommand (final String[] cmdline, final OutputStream outstream, final StringBuilder outstring, final String outPrefix)
 
static final void oneTimeSetUpUITest ()
 
static final void oneTimeTearDownUITest ()
 

Detailed Description

Tests for bug 463, where gluScaleImage uses up all system memory.

This was due to creating millions of 4-byte direct buffer objects inside the tight loops of Image.fill_image() and Image.empty_image(). Since the JVM apparently can only allocate direct buffer in 4MB chunks, each 4-byte buffer cost us a million times the memory it should have. Changing the constructor of Type_Widget.java back to non-direct buffer (like it was in JOGL 1) solves the problem.

Author
Wade Walker

Definition at line 58 of file TestBug463ScaleImageMemoryAWT.java.

Member Function Documentation

◆ display()

void com.jogamp.opengl.test.junit.jogl.glu.TestBug463ScaleImageMemoryAWT.display ( final GLAutoDrawable  drawable)

Called by the drawable to initiate OpenGL rendering by the client.

After all GLEventListeners have been notified of a display event, the drawable will swap its buffers if setAutoSwapBufferMode is enabled.

Implements com.jogamp.opengl.GLEventListener.

Definition at line 65 of file TestBug463ScaleImageMemoryAWT.java.

Here is the call graph for this function:

◆ dispose()

void com.jogamp.opengl.test.junit.jogl.glu.TestBug463ScaleImageMemoryAWT.dispose ( final GLAutoDrawable  drawable)

Notifies the listener to perform the release of all OpenGL resources per GLContext, such as memory buffers and GLSL programs.

Called by the drawable before the OpenGL context is destroyed by an external event, like a reconfiguration of the GLAutoDrawable closing an attached window, but also manually by calling destroy.

Note that this event does not imply the end of life of the application. It could be produced with a followup call to init(GLAutoDrawable) in case the GLContext has been recreated, e.g. due to a pixel configuration change in a multihead environment.

Implements com.jogamp.opengl.GLEventListener.

Definition at line 93 of file TestBug463ScaleImageMemoryAWT.java.

◆ init()

void com.jogamp.opengl.test.junit.jogl.glu.TestBug463ScaleImageMemoryAWT.init ( final GLAutoDrawable  drawable)

Called by the drawable immediately after the OpenGL context is initialized.

Can be used to perform one-time OpenGL initialization per GLContext, such as setup of lights and display lists.

Note that this method may be called more than once if the underlying OpenGL context for the GLAutoDrawable is destroyed and recreated, for example if a GLCanvas is removed from the widget hierarchy and later added again.

Implements com.jogamp.opengl.GLEventListener.

Definition at line 61 of file TestBug463ScaleImageMemoryAWT.java.

◆ main()

static void com.jogamp.opengl.test.junit.jogl.glu.TestBug463ScaleImageMemoryAWT.main ( final String  args[])
static

Definition at line 135 of file TestBug463ScaleImageMemoryAWT.java.

◆ reshape()

void com.jogamp.opengl.test.junit.jogl.glu.TestBug463ScaleImageMemoryAWT.reshape ( final GLAutoDrawable  drawable,
final int  x,
final int  y,
final int  width,
final int  height 
)

Called by the drawable during the first repaint after the component has been resized.

The client can update it's viewport associated data and view volume of the window appropriately.

For efficiency the GL viewport has already been updated via glViewport(x, y, width, height) when this method is called.

Parameters
drawablethe triggering GLAutoDrawable
xlower left corner of the viewport rectangle in pixel units
ylower left corner of the viewport rectangle in pixel units
widthwidth of the viewport rectangle in pixel units
heightheight of the viewport rectangle in pixel units

Implements com.jogamp.opengl.GLEventListener.

Definition at line 88 of file TestBug463ScaleImageMemoryAWT.java.

◆ test01()

void com.jogamp.opengl.test.junit.jogl.glu.TestBug463ScaleImageMemoryAWT.test01 ( ) throws InterruptedException

Definition at line 97 of file TestBug463ScaleImageMemoryAWT.java.

Here is the call graph for this function:

The documentation for this class was generated from the following file: