1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../css/manpage.css" type="text/css" />
7<title>nngxInitialize</title>
8  </head>
9  <body>
10<h1><CODE>nngxInitialize</CODE> Function</h1>
11<h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14NNGX_APICALL GLboolean NNGX_APIENTRY nngxInitialize(
15     GLvoid *(*)(GLenum, GLenum, GLuint, GLsizei) allocator,
16     void(*)(GLenum, GLenum, GLuint, GLvoid *) deallocator
17);
18</pre>
19    </div>
20<h2>Arguments</h2>
21    <div class="section">
22      <table class="arguments">
23        <thead>
24          <tr>
25            <td width="15" />
26<th>Name</th>
27<td>Description</td>
28          </tr>
29        </thead>
30        <tr>
31<td>in</td>
32<th>allocator</th>
33<td>Pointer to an allocator function</td>
34        </tr>
35        <tr>
36<td>in</td>
37<th>deallocator</th>
38<td>Pointer to a deallocator function</td>
39        </tr> </table>
40    </div>
41<h2>Return Values</h2>
42<div class="section">Returns <CODE>GL_TRUE</CODE> if initialization succeeded and <CODE>GL_FALSE</CODE> if it failed. </div>
43<h2>Description</h2>
44    <div class="section">
45<p>Initializes the graphics library (DMPGL).</p><P>
46Set <SPAN class="argument">allocator</SPAN> to the function that DMPGL will use to allocate memory regions. The allocator's first argument specifies the memory region and takes a value of <CODE>NN_GX_MEM_FCRAM</CODE>, <CODE>NN_GX_MEM_VRAMA</CODE>, or <CODE>NN_GX_MEM_VRAMB</CODE>. The allocator's second argument specifies how memory will be used and takes a value of <CODE>NN_GX_MEM_SYSTEM</CODE>, <CODE>NN_GX_MEM_TEXTURE</CODE>, <CODE>NN_GX_MEM_VERTEXBUFFER</CODE>, <CODE>NN_GX_MEM_RENDERBUFFER</CODE>, <CODE>NN_GX_MEM_DISPLAYBUFFER</CODE>, or <CODE>NN_GX_MEM_COMMANDBUFFER</CODE>. The allocator's third argument is the object name. The allocator's fourth argument is the number of bytes of memory to allocate. Implement the allocator so that it returns 0 when it fails and the memory address of the allocated region when it succeeds.
47            </P><P>
48Set <SPAN class="argument">deallocator</SPAN> to the function that DMPGL uses to free memory regions. The deallocator's first, second, and third arguments are the same as the allocator's. The deallocator's fourth argument is the memory address to free.
49            </P><P>
50Once this function has successfully initialized the library, it returns <CODE>GL_FALSE</CODE> if it is called again before the <CODE><a href="../nn_gx/nngxFinalize.html">nngxFinalize</a></CODE> function is called.
51            </P><P>
52Between the point this function is called and the <CODE><a href="../nn_gx/nngxFinalize.html">nngxFinalize</a></CODE> function is called, one thread for internal processing is generated and one <CODE><a href="../nn/os/Event/Overview.html">nn::os::Event</a></CODE> object is allocated.
53            </P><P>
54This function allocates a command buffer to initialize the GPU register, and a buffer for internal state management (passes requests to the allocator). This function includes a buffer used for temporary allocation only, and a buffer that is kept until the <CODE>nngxFinalize</CODE> function is called. The breakdown is as follows.
55<TABLE><TR><TH>order</TH><TH>Area</TH><TH>Usage</TH><TH>Requested size (bytes)</TH><TH>Note</TH></TR><TR><TD>1</TD><TD>Main memory (FCRAM)</TD><TD>SYSTEM</TD><TD>12252</TD><TD>For internal state management. Deallocated by a call to the <CODE>nngxFinalize</CODE> function.</TD></TR><TR><TD>2</TD><TD>Main memory (FCRAM)</TD><TD>SYSTEM</TD><TD>40</TD><TD>For internal state management. Deallocated by a call to the <CODE>nngxFinalize</CODE> function.</TD></TR><TR><TD>3</TD><TD>Main memory (FCRAM)</TD><TD>SYSTEM</TD><TD>632</TD><TD>For internal state management. Deallocated by a call to the <CODE>nngxFinalize</CODE> function.</TD></TR><TR><TD>4</TD><TD>Main memory (FCRAM)</TD><TD>SYSTEM</TD><TD>120</TD><TD>For internal state management. Deallocated by a call to the <CODE>nngxFinalize</CODE> function.</TD></TR><TR><TD>5</TD><TD>Main memory (FCRAM)</TD><TD>SYSTEM</TD><TD>460</TD><TD>For internal state management. Deallocated by a call to the <CODE>nngxFinalize</CODE> function.</TD></TR><TR><TD>6</TD><TD>Main memory (FCRAM)</TD><TD>SYSTEM</TD><TD>156</TD><TD>For internal state management. Deallocated by a call to the <CODE>nngxFinalize</CODE> function.</TD></TR><TR><TD>7</TD><TD>Main memory (FCRAM)</TD><TD>SYSTEM</TD><TD>60</TD><TD>For register initialization command.<FONT color="red">This is deallocated inside the function.</FONT></TD></TR><TR><TD>8</TD><TD>Main memory (FCRAM)</TD><TD>COMMANDBUFFER</TD><TD>65984</TD><TD>For register initialization command.<FONT color="red">This is deallocated inside the function.</FONT></TD></TR><TR><TD>9</TD><TD>Main memory (FCRAM)</TD><TD>SYSTEM</TD><TD>16384</TD><TD>Buffer for temporary use.<FONT color="red">This is deallocated inside the function.</FONT></TD></TR></TABLE></P></div>
56<h2>See Also</h2>
57    <div class="section">
58<p class="reference"><a href="../nn_gx/nngxFinalize.html"><CODE>nngxFinalize</CODE></a><br /> </p>
59    </div>
60<h2>Revision History</h2>
61    <div class="section">
62      <dl class="history">
63        <dt>2011/10/04</dt>
64<dd>Added <B>See Also</B> section.<br />
65        </dd>
66        <dt>2011/08/02</dt>
67<dd>Added information about internally created threads and events.<BR>
68        </dd>
69        <dt>2011/04/01</dt>
70<dd>Added description of buffers requested from the allocator inside the <CODE>nngxInitialize</CODE> function.<br />
71        </dd>
72        <dt>2010/02/01</dt>
73<dd>Made revisions due to changes in the attribute specifications.<br />
74        </dd>
75        <dt>2010/01/07</dt>
76<dd>Initial version.<br />
77        </dd>
78      </dl>
79    </div>
80  <hr><p>CONFIDENTIAL</p></body>
81</html>