In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Changes

Jump to navigation Jump to search
3,825 bytes removed ,  18:19, 11 April 2009
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==
613

edits

Navigation menu