From df6769a2fd4ca8b3b7ad520b26efb2703ac050c0 Mon Sep 17 00:00:00 2001 From: mizu Date: Sun, 13 Mar 2011 23:59:45 +0000 Subject: [PATCH] git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@127 385bec56-5757-e545-9c3a-d8741f4650f1 --- trunk/CardSaveDataMover/common/common.BAK | 191 ----------- trunk/CardSaveDataMover/common/shfnt.BAK | 369 ---------------------- 2 files changed, 560 deletions(-) delete mode 100644 trunk/CardSaveDataMover/common/common.BAK delete mode 100644 trunk/CardSaveDataMover/common/shfnt.BAK diff --git a/trunk/CardSaveDataMover/common/common.BAK b/trunk/CardSaveDataMover/common/common.BAK deleted file mode 100644 index 15b6f0e..0000000 --- a/trunk/CardSaveDataMover/common/common.BAK +++ /dev/null @@ -1,191 +0,0 @@ -#include -#include -#include "common.h" -#include "sleep.h" -#include "demo.h" - - -extern demo::RenderSystemDrawing s_RenderSystem; -extern nn::fnd::ExpHeap appHeap; -extern uptr heapForGx; - -// ファイルシステム処理と遷移やスリープ処理との排他制御に利用 -//nn::os::CriticalSection g_SleepCS; -// HOME ボタン遷移とファイルシステム処理の排他制御に利用(手動リセット) -nn::os::LightEvent g_TransitionEvent; -// スリープとファイルシステム処理の排他制御に利用(手動リセット) -nn::os::LightEvent g_AwakeEvent; - -void restoreGraphicSetting() -{ - // GPU レジスタ設定の復帰 - // ただし、下記は DMPGL API を使用して設定した状態の復帰のみ - // レジスタ設定コマンドは全て再発行するべき - nngxUpdateState(NN_GX_STATE_ALL); - nngxValidateState(NN_GX_STATE_ALL,GL_TRUE); -} - -FUNCP end_func; -void InitSysBreak(uptr adrs){ - end_func = (FUNCP)adrs; - - SleepHandler::Initialize(); - - //g_SleepCS.Initialize(); - g_AwakeEvent.Initialize(true); - g_TransitionEvent.Initialize(true); - - // 起床中は常に Signal 状態にしておく - g_AwakeEvent.Signal(); - g_TransitionEvent.Signal(); - - // アプレットライブラリに関する機能を有効にする - nn::applet::Enable(false); - // gx, snd, dsp 各ライブラリの Initialize 関数は applet::Enable() の後に呼ばれなければならない - // 特に、gx の初期化である nngxInitialize 関数は、Enable() 直後の終了判定の後に行われるべき - - // ロゴ表示時に電源ボタンが押されたなど、既に終了条件が立っていた場合、ここでアプリを終了させる - if ( nn::applet::IsExpectedToCloseApplication() ) - { - SleepHandler::Finalize(); - nn::Result result = nn::applet::PrepareToCloseApplication(); - NN_UTIL_PANIC_IF_FAILED( result ); - nn::applet::CloseApplication(); - } - // グラフィックスライブラリの初期化は、以降で行わなければならない - // 他、アプリケーションの初期化処理 - -} - - -//終了処理 -void finish() -{ - - SleepHandler::Finalize();//SLEEP - //g_SleepCS.Finalize(); - g_AwakeEvent.Finalize(); - g_TransitionEvent.Finalize(); - - (*end_func)(); - - // nngxFinalize 関数呼び出しと VSync 割り込みが同時に発生すると - // 画面が暗転したまま止まる不具合を回避するために VSync 待ちを行う - nngxWaitVSync(NN_GX_DISPLAY_BOTH); - s_RenderSystem.Finalize(); - - nn::fs::Finalize(); - - - appHeap.Free(reinterpret_cast(heapForGx)); - appHeap.Finalize(); - - nn::os::SetDeviceMemorySize(0); - nn::os::SetHeapSize(0); - - NN_LOG("End\n"); - nn::applet::PrepareToCloseApplication(); - nn::applet::CloseApplication(); -} - - -void CheckSysBreak(){ - // スリープからの起床時は、1フレーム分の描画完了を待ってから LCD を有効にする - if ( SleepHandler::s_IsAfterWakeUp ) { - nn::gx::StartLcdDisplay(); - SleepHandler::s_IsAfterWakeUp = false; - } - - // GPU のレジスタ設定の整合性を考慮した場合、 - // 各種遷移、スリープ要求への返答は描画終了後に行うべき - - // 本体スリープ判定 - if ( SleepHandler::IsSleepRequested() ) - { - SleepHandler::SleepSystem(); - } - - // 終了要求をチェック - if ( nn::applet::IsExpectedToCloseApplication() ) - { - finish(); - } - - // アプリケーションの遷移処理を行う - - // HOMEボタン処理(グラフィックスライブラリが初期化済みでなければならない) - if ( nn::applet::IsExpectedToProcessHomeButton() ) - { - // ここでフラグなどを判定してブロックを抜けるようにすれば HOME ボタン禁止区間を実現できる - // nn::applet::ClearHomeButtonState() による HOME ボタンフラグ削除も必要 - - g_TransitionEvent.ClearSignal(); - - // ファイルシステム処理中は遷移を待つ - //if ( g_SleepCS.TryEnter() ) - { - // スリープ要求を REJECT するように - nn::applet::DisableSleep(); - - //nngxWaitCmdlistDone(); - nn::applet::ProcessHomeButton(); - nn::applet::AppletWakeupState wState = nn::applet::WaitForStarting(); - NN_UNUSED_VAR(wState); - - //g_SleepCS.Leave(); - g_TransitionEvent.Signal(); - - // HOME メニューからの中断やバッテリー不足の要因により - // アプリ終了と判断された場合、アプリのメインループを抜けて終了処理へ - if ( nn::applet::IsExpectedToCloseApplication() ) - { - // 描画権は渡されていない - finish(); - } - - nn::applet::EnableSleep(true); - - // グラフィックの設定を戻す - restoreGraphicSetting(); - } - - } - - - // 電源ボタン処理(グラフィックスライブラリが初期化済みでなければならない) - if ( nn::applet::IsExpectedToProcessPowerButton() ) - { - g_TransitionEvent.ClearSignal(); - - // ファイルシステム処理中は遷移を待つ - //if ( g_SleepCS.TryEnter() ) - { - nn::applet::DisableSleep(); - //nngxWaitCmdlistDone(); - nn::applet::ProcessPowerButton(); - nn::applet::AppletWakeupState wState = nn::applet::WaitForStarting(); - - NN_UNUSED_VAR(wState); - - //g_SleepCS.Leave(); - g_TransitionEvent.Signal(); - - // アプリ終了と判断された場合、アプリのメインループを抜けて終了処理へ - if ( nn::applet::IsExpectedToCloseApplication() ) - { - // 描画権は渡されていない - finish(); - } - - nn::applet::EnableSleep(true); - - // グラフィックの設定を戻す - restoreGraphicSetting(); - } - - } - - - - -} diff --git a/trunk/CardSaveDataMover/common/shfnt.BAK b/trunk/CardSaveDataMover/common/shfnt.BAK deleted file mode 100644 index 82663d7..0000000 --- a/trunk/CardSaveDataMover/common/shfnt.BAK +++ /dev/null @@ -1,369 +0,0 @@ -サソ -#include -#include -#include -#include -#include -#include - -#include "demo.h" - -const char s_ShaderBinaryFilePath[] = "rom:/nnfont_RectDrawerShader.shbin"; - -extern nn::fnd::ExpHeap appHeap; - -//--------------------------------------------------------------------------- -//! @brief 繧キ繧ァ繝シ繝縺ョ蛻晄悄蛹悶r陦後>縺セ縺吶 -//! -//! @param[in,out] pResource 謠冗判逕ィ繝ェ繧ス繝シ繧ケ繧堤ョ。逅縺吶k繧ェ繝悶ず繧ァ繧ッ繝医∈縺ョ繝昴う繝ウ繧ソ縲 -//--------------------------------------------------------------------------- -void* -InitShaders(nn::font::RectDrawer* pDrawer) -{ - const size_t ROMFS_BUFFER_SIZE = 1024 * 64; - static char buffer[ROMFS_BUFFER_SIZE]; - - nn::fs::MountRom(16, 16, buffer, ROMFS_BUFFER_SIZE); - nn::fs::FileReader shaderReader(s_ShaderBinaryFilePath); - - const u32 fileSize = (u32)shaderReader.GetSize(); - - void* shaderBinary = appHeap.Allocate(fileSize); - NN_NULL_ASSERT(shaderBinary); - - shaderReader.Read(shaderBinary, fileSize); - - const u32 vtxBufCmdBufSize = - nn::font::RectDrawer::GetVertexBufferCommandBufferSize(shaderBinary, fileSize); - void *const vtxBufCmdBuf = appHeap.Allocate(vtxBufCmdBufSize); - NN_NULL_ASSERT(vtxBufCmdBuf); - pDrawer->Initialize(vtxBufCmdBuf, shaderBinary, fileSize); - - appHeap.Free(shaderBinary); - - shaderReader.Finalize(); - nn::fs::Unmount("rom:"); - return vtxBufCmdBuf; -} -/*---------------------------------------------------------------------------* - @brief 繧ー繝ゥ繝輔ぅ繝繧ッ繧ケ縺ョ蛻晄悄險ュ螳壹r陦後>縺セ縺吶 - *---------------------------------------------------------------------------*/ -void -InitGX() -{ - glClearColor(0.3f, 0.3f, 0.3f, 1.0f); -} - - -//--------------------------------------------------------------------------- -//! @brief 謠冗判縺ョ蛻晄悄險ュ螳壹r陦後>縺セ縺吶 -//! -//! @param[in] width 逕サ髱「縺ョ蟷縲 -//! @param[in] height 逕サ髱「縺ョ鬮倥&縲 -//--------------------------------------------------------------------------- -void -InitDraw( - int width, - int height -) -{ - // 繧ォ繝ゥ繝シ繝舌ャ繝輔ぃ諠蝣ア - // LCD縺ョ蜷代″縺ォ蜷医o縺帙※縲∝ケ縺ィ鬮倥&繧貞・繧梧崛縺医※縺縺セ縺吶 - const nn::font::ColorBufferInfo colBufInfo = { width, height, PICA_DATA_DEPTH24_STENCIL8_EXT }; - - const u32 screenSettingCommands[] = - { - - // 繝薙Η繝シ繝昴シ繝医ョ險ュ螳 - NN_FONT_CMD_SET_VIEWPORT( 0, 0, colBufInfo.width, colBufInfo.height ), - - // 繧キ繧カ繝シ蜃ヲ逅繧堤┌蜉ケ - NN_FONT_CMD_SET_DISABLE_SCISSOR( colBufInfo ), - - // w繝舌ャ繝輔ぃ縺ョ辟。蜉ケ蛹 - // 繝繝励せ繝ャ繝ウ繧ク縺ョ險ュ螳 - // 繝昴Μ繧エ繝ウ繧ェ繝輔そ繝繝医ョ辟。蜉ケ蛹 - NN_FONT_CMD_SET_WBUFFER_DEPTHRANGE_POLYGONOFFSET( - 0.0f, // wScale : 0.0 縺ァW繝舌ャ繝輔ぃ縺檎┌蜉ケ - 0.0f, // depth range near - 1.0f, // depth range far - 0, // polygon offset units : 0.0 縺ァ 繝昴Μ繧エ繝ウ繧ェ繝輔そ繝繝医′辟。蜉ケ - colBufInfo), - }; - - nngxAdd3DCommand(screenSettingCommands, sizeof(screenSettingCommands), true); - - static const u32 s_InitCommands[] = - { - // 繧ォ繝ェ繝ウ繧ー繧堤┌蜉ケ - NN_FONT_CMD_SET_CULL_FACE( NN_FONT_CMD_CULL_FACE_DISABLE ), - - // 繧ケ繝繝ウ繧キ繝ォ繝繧ケ繝医r辟。蜉ケ - NN_FONT_CMD_SET_DISABLE_STENCIL_TEST(), - - // 繝繝励せ繝繧ケ繝医r辟。蜉ケ - // 繧ォ繝ゥ繝シ繝舌ャ繝輔ぃ縺ョ蜈ィ縺ヲ縺ョ謌仙繧呈嶌縺崎セシ縺ソ蜿ッ - NN_FONT_CMD_SET_DEPTH_FUNC_COLOR_MASK( - false, // isDepthTestEnabled - 0, // depthFunc - true, // depthMask - true, // red - true, // green - true, // blue - true), // alpha - - // 繧「繝シ繝ェ繝シ繝繝励せ繝繧ケ繝医r辟。蜉ケ - NN_FONT_CMD_SET_ENABLE_EARLY_DEPTH_TEST( false ), - - // 繝輔Ξ繝シ繝繝舌ャ繝輔ぃ繧「繧ッ繧サ繧ケ蛻カ蠕。 - NN_FONT_CMD_SET_FBACCESS( - true, // colorRead - true, // colorWrite - false, // depthRead - false, // depthWrite - false, // stencilRead - false), // stencilWrite - }; - - nngxAdd3DCommand(s_InitCommands, sizeof(s_InitCommands), true); -} - -//--------------------------------------------------------------------------- -//! @brief ResFont繧呈ァ狗ッ峨@縺セ縺吶 -//! -//! @param[out] pFont 讒狗ッ峨☆繧九ヵ繧ゥ繝ウ繝医∈縺ョ繝昴う繝ウ繧ソ縲 -//! @param[in] filePath 繝ュ繝シ繝峨☆繧九ヵ繧ゥ繝ウ繝医Μ繧ス繝シ繧ケ繝輔ぃ繧、繝ォ蜷阪 -//! -//! @return ResFont讒狗ッ峨ョ謌仙凄繧定ソ斐@縺セ縺吶 -//--------------------------------------------------------------------------- -bool -InitFont( - nn::font::ResFont* pFont, - void* pBuffer -) -{ - // 繝輔か繝ウ繝医Μ繧ス繝シ繧ケ繧偵そ繝繝医@縺セ縺 - bool bSuccess = pFont->SetResource(pBuffer); - - // 謠冗判逕ィ繝舌ャ繝輔ぃ繧定ィュ螳壹@縺セ縺吶 - const u32 drawBufferSize = nn::font::ResFont::GetDrawBufferSize(pBuffer); - void* drawBuffer = appHeap.Allocate(drawBufferSize, 4); - pFont->SetDrawBuffer(drawBuffer); - NN_NULL_ASSERT(drawBuffer); - - return bSuccess; -} - -//--------------------------------------------------------------------------- -//! @brief ResFont繧堤エ譽縺励∪縺吶 -//! -//! @param[in] pFont 遐エ譽縺吶k繝輔か繝ウ繝医∈縺ョ繝昴う繝ウ繧ソ縲 -//--------------------------------------------------------------------------- -void -CleanupFont(nn::font::ResFont* pFont) -{ - // 謠冗判逕ィ繝舌ャ繝輔ぃ縺ョ辟。蜉ケ蛹 - // 謠冗判逕ィ繝舌ャ繝輔ぃ縺後そ繝繝医&繧後※縺繧九↑繧 讒狗ッ画凾縺ォ SetDrawBuffer 縺ォ貂。縺励◆繝舌ャ繝輔ぃ縺ク縺ョ - // 繝昴う繝ウ繧ソ縺瑚ソ斐▲縺ヲ縺阪∪縺吶 - void *const drawBuffer = pFont->SetDrawBuffer(NULL); - if (drawBuffer != NULL) - { - appHeap.Free(drawBuffer); - } -} - -//--------------------------------------------------------------------------- -//! @brief 陦ィ遉コ譁蟄怜礼畑繝舌ャ繝輔ぃ繧堤「コ菫昴@縺セ縺吶 -//! -//! @param[in] charMax 陦ィ遉コ縺吶k譁蟄怜励ョ譛螟ァ譁蟄玲焚縲 -//! -//! @return 遒コ菫昴@縺溯。ィ遉コ譁蟄怜礼畑繝舌ャ繝輔ぃ縺ク縺ョ繝昴う繝ウ繧ソ繧定ソ斐@縺セ縺吶 -//--------------------------------------------------------------------------- -nn::font::DispStringBuffer* -AllocDispStringBuffer(int charMax) -{ - const u32 DrawBufferSize = nn::font::CharWriter::GetDispStringBufferSize(charMax); - void *const bufMem = appHeap.Allocate(DrawBufferSize); - NN_NULL_ASSERT(bufMem); - - return nn::font::CharWriter::InitDispStringBuffer(bufMem, charMax); -} - -//--------------------------------------------------------------------------- -//! @brief 譁蟄怜苓。ィ遉コ逕ィ縺ォ繝「繝繝ォ繝薙Η繝シ陦悟励→蟆蠖ア陦悟励r險ュ螳壹@縺セ縺吶 -//! -//! @param[in] pDrawer RectDrawer繧ェ繝悶ず繧ァ繧ッ繝医∈縺ョ繝昴う繝ウ繧ソ縲 -//! @param[in] width 逕サ髱「縺ョ蟷縲 -//! @param[in] height 逕サ髱「縺ョ鬮倥&縲 -//--------------------------------------------------------------------------- -void -SetupTextCamera( - nn::font::RectDrawer* pDrawer, - int width, - int height -) -{ - // 蟆蠖ア陦悟励r豁」蟆蠖ア縺ォ險ュ螳 - { - // 蟾ヲ荳雁次轤ケ縺ィ縺励〆霆ク縺ィZ霆ク縺ョ蜷代″縺碁縺ォ縺ェ繧九h縺縺ォ險ュ螳壹@縺セ縺吶 - nn::math::MTX44 proj; - f32 znear = 0.0f; - f32 zfar = -1.0f; - f32 t = 0; - f32 b = static_cast(width); - f32 l = 0; - f32 r = static_cast(height); - nn::math::MTX44OrthoPivot(&proj, l, r, b, t, znear, zfar, nn::math::PIVOT_UPSIDE_TO_TOP); - pDrawer->SetProjectionMtx(proj); - } - - // 繝「繝繝ォ繝薙Η繝シ陦悟励r蜊倅ス崎。悟励↓險ュ螳 - { - nn::math::MTX34 mv; - nn::math::MTX34Identity(&mv); - pDrawer->SetViewMtxForText(mv); - } -} - -nn::font::RectDrawer drawer; -void *drawerBuf; -nn::font::DispStringBuffer *pDrawStringBuf0; -nn::font::DispStringBuffer *pDrawStringBuf1; -nn::font::ResFont font; -nn::font::TextWriter writer; -//--------------------------------------------------------------------------- -//! @brief ASCII譁蟄怜励r謠冗判縺励∪縺吶 -//--------------------------------------------------------------------------- -void -shf_DrawText_0( u16 x,u16 y,char *s) -{ - writer.SetCursor(x, y); - - writer.StartPrint(); - (void)writer.Print(s); - writer.EndPrint(); - drawer.BuildTextCommand(&writer); - - - drawer.DrawBegin(); - - SetupTextCamera(&drawer, NN_GX_DISPLAY0_WIDTH, NN_GX_DISPLAY0_HEIGHT); - writer.UseCommandBuffer(); - - drawer.DrawEnd(); -} - -shf_DrawText_1( u16 x,u16 y,char *s) -{ - writer.SetCursor(x, y); - - writer.StartPrint(); - (void)writer.Print(s); - writer.EndPrint(); - drawer.BuildTextCommand(&writer); - - - drawer.DrawBegin(); - - SetupTextCamera(&drawer, NN_GX_DISPLAY1_WIDTH, NN_GX_DISPLAY1_HEIGHT); - writer.UseCommandBuffer(); - - drawer.DrawEnd(); -} - - -void shf_SetSize(f32 sz) -{ - writer.SetScale(sz/14,sz/20); -} - -void shf_SetScale(f32 h,f32 v) -{ - writer.SetScale(h,v); -} - - -void shf_SetFontSize(f32 sz) -{ - writer.SetFontSize(sz); -} - -f32 shf_GetFontWidth() -{ - return writer.GetFontWidth(); -} - -f32 shf_GetFontHeight() -{ - return writer.GetFontHeight(); -} - - -void shf_SetColor(f32 r,f32 g,f32 b,f32 a) -{ - writer.SetTextColor(nn::util::FloatColor(r,g,b,a)); -} - -//蛻晄悄蛹 -//AppHeap遒コ菫昴ヽenderSystem.Initit縺ョ蠕後↓蜻シ縺カ -void SharedFontInit() -{ - - InitGX(); - - // 蜈ア譛峨ヵ繧ゥ繝ウ繝医ョ蛻晄悄蛹 - NN_UTIL_PANIC_IF_FAILED(nn::pl::InitializeSharedFont()); - - // 蜈ア譛峨ヵ繧ゥ繝ウ繝医ョ繝ュ繝シ繝峨′螳御コ縺吶k縺セ縺ァ蠕讖 - while (nn::pl::GetSharedFontLoadState() != nn::pl::SHARED_FONT_LOAD_STATE_LOADED) - { - // 蜈ア譛峨ヵ繧ゥ繝ウ繝医ョ繝ュ繝シ繝峨↓螟ア謨励@縺ヲ縺縺ェ縺縺狗「コ隱 - if (nn::pl::GetSharedFontLoadState() == nn::pl::SHARED_FONT_LOAD_STATE_FAILED) - { - NN_TPANIC_("failed to load shared font!\n"); - } - nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(1)); - } - - // 蜈ア譛峨ヵ繧ゥ繝ウ繝医ョ遞ョ鬘槭r蜿門セ - //nn::pl::SharedFontType sharedFontType = nn::pl::GetSharedFontType(); - - // 蜈ア譛峨ヵ繧ゥ繝ウ繝医ョ繝シ繧ソ縺ョ繧「繝峨Ξ繧ケ繧貞叙蠕 - void* pFontBuffer = nn::pl::GetSharedFontAddress(); - - InitFont(&font, pFontBuffer); - - // 謠冗判繝ェ繧ス繝シ繧ケ縺ョ讒狗ッ - drawerBuf = InitShaders(&drawer); - - // 謠冗判譁蟄怜礼畑繝舌ャ繝輔ぃ縺ョ遒コ菫 - pDrawStringBuf0 = AllocDispStringBuffer(1024); - pDrawStringBuf1 = AllocDispStringBuffer(512); - - writer.SetDispStringBuffer(pDrawStringBuf0); - writer.SetFont(&font); - SetupTextCamera(&drawer, NN_GX_DISPLAY0_WIDTH, NN_GX_DISPLAY0_HEIGHT); - -} - - -void SharedFontFinalize() -{ - drawer.Finalize(); - - // 謠冗判繝ェ繧ス繝シ繧ケ縺ョ遐エ譽 - appHeap.Free(drawerBuf); - - // 繝輔か繝ウ繝医ョ遐エ譽 - CleanupFont(&font); - - // 謠冗判譁蟄怜礼畑繝舌ャ繝輔ぃ縺ョ隗」謾セ - appHeap.Free(pDrawStringBuf1); - appHeap.Free(pDrawStringBuf0); - -} - - -/*---------------------------------------------------------------------------* - End of file - *---------------------------------------------------------------------------*/