Line 34:
Line 34:
==Installation and usage==
==Installation and usage==
−
===Installation===
+
See [[/Installation and usage]].
−
# Copy all the .c and .h files into your project (make sure the .c are accessible as ''source''s and .h accessible as ''include''s).
−
# Add <code>#include "HomeMenu.h"</code> where appropriate.
−
# Add <code>-lasnd -lwiiuse</code> to your MakeFile's <code>LIBS :=</code> line.
−
−
===Usage===
−
# Call <code>HomeMenu_Init()</code> to set things up. Its parameters are:
−
#* <code>int screenWidth</code> -- horizontal resolution of screen.
−
#* <code>int screenHeight</code> -- vertical resolution of screen.
−
#* <code>void* framebuffer0</code> -- pointer to the first framebuffer.
−
#* <code>void* framebuffer1</code> -- pointer to the second framebuffer (Currently assumes double-buffering).
−
#* <code>u8 framebufferIndex</code> -- index to last buffer drawn to [0, 1].
−
# Specify graphics library with <code>HomeMenu_SetGFX()</code>. Accepted values are:
−
#* <code>HM_GFX_GRRLIB</code>
−
#* <code>HM_GFX_LIBWIISPRITE</code>
−
#* <code>HM_GFX_FAILSAFE</code> (which currently draws nothing).
−
# Specify sound library with <code>HomeMenu_SetSND()</code>. Accepted values are:
−
#* <code>HM_SND_ASND</code>
−
#* <code>HM_SND_SDL</code> (not yet implemented)
−
#* <code>HM_SND_NOSOUND</code>.
−
# When you want to display the menu (when the user presses HOME), simply call <code>HomeMenu_Show()</code>. In order for [[HomeMenu]] to be able to take a screenshot (used as the menu background) <code>HomeMenu_Show()</code> must be called ''before'' flushing the framebuffer.
−
−
'''Tip:''' If you have a callback set up for when the user holds down on the wiimote's powerbutton, add <code>HomeMenu_Hide()</code> to this callback to tell HomeMenu to relinquish its control of the main thread.
−
−
'''Tip:''' If your application relies on a timer, consider using the <code>HomeMenu_SetAfterHideMenu(yourCallback)</code> callback setter. This will allow you to update your timer (if necessary) before resuming your application.
−
−
====Libwiisprite users====
−
Currently, the pointers to the framebuffers and the framebuffer index are stored in the <code>GameWindow</code> object as <code>private</code> members. [[Shiny Red Tank]] got around this problem by adding accessors to the <code>GameWindow</code> class. Hopefully, if there is enough demand, the accessors will be included in the next version of LWS (go ask!). Here are my modifications:
−
−
{| class="wikitable collapsible collapsed" width="61.8%"
−
|-
−
! Changes to GameWindow.h
−
|-
−
|<source lang=cpp>
−
/*** Add the following lines in the public section ***/
−
−
//!Get a pointer to one of the framebuffers
−
//!\return a pointer to desired framebuffer, or NULL if index is out of bounds.
−
void* GetFrameBuffer(u32 index);
−
//!Gets the index of the current framebuffer.
−
//!\return value of index of current framebuffer.
−
u32 GetFrameBufferIndex();
−
</source>
−
|}
−
−
{| class="wikitable collapsible collapsed" width="61.8%"
−
|-
−
! Changes to GameWindow.cpp
−
|-
−
|<source lang=cpp>
−
/*** Add the following lines within the namespace wsp block ***/
−
−
void* GameWindow::GetFrameBuffer(u32 index) {
−
if (index > 1 || index < 0)
−
return NULL;
−
else
−
return _frameBuffer[index];
−
}
−
−
u32 GameWindow::GetFrameBufferIndex() {
−
return _fb;
−
}
−
</source>
−
|}
−
−
====GRRLIB 4.0.0 users====
−
I think the same problem (as mentioned above) applies to you guys. Here are the accessors I used during my testing.
−
−
{| class="wikitable collapsible collapsed" width="61.8%"
−
|-
−
! Changes to GRRLIB.h
−
|-
−
|<source lang=c>
−
void* GetFrameBuffer(u32 index);
−
int GetFrameBufferIndex();
−
</source>
−
|}
−
−
{| class="wikitable collapsible collapsed" width="61.8%"
−
|-
−
! Changes to GRRLIB.c
−
|-
−
|<source lang=c>
−
/**
−
* Get a pointer to one of the framebuffers.
−
* @param index specifies which framebuffer to retrieve.
−
*/
−
void* GetFrameBuffer(u32 index) {
−
return xfb[index];
−
}
−
/**
−
* Get the index of the current framebuffer.
−
*/
−
int GetFrameBufferIndex() {
−
return fb;
−
}
−
</source>
−
|}
==Statistics==
==Statistics==