From b49880c785e7fae793d814c8a6192417c39cf938 Mon Sep 17 00:00:00 2001 From: N2614 Date: Mon, 31 Oct 2011 06:39:40 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=8D=E3=83=83=E3=83=88=E3=83=AF=E3=83=BC?= =?UTF-8?q?=E3=82=AF=E8=A9=A6=E9=81=8A=E5=8F=B0=E7=94=A8=E3=83=AD=E3=82=B4?= =?UTF-8?q?=E3=82=92=E4=BD=BF=E3=81=86=20=E3=81=A8=E3=82=8A=E3=81=82?= =?UTF-8?q?=E3=81=88=E3=81=9A=E3=83=93=E3=83=AB=E3=83=89=E3=81=8C=E9=80=9A?= =?UTF-8?q?=E3=82=8B=E3=81=A8=E3=81=93=E3=82=8D=E3=81=BE=E3=81=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@465 385bec56-5757-e545-9c3a-d8741f4650f1 --- branches/CardCupForNBD/CardCup/OMakefile | 25 +++- branches/CardCupForNBD/CardCup/main.cpp | 115 +----------------- .../CardCupForNBD/CardCup/romfiles/All.arc | Bin 0 -> 147656 bytes .../shaders/nwfont_RectDrawerShader.shbin | Bin 0 -> 964 bytes .../shaders/nwfont_TextWriterShader.shbin | Bin 0 -> 484 bytes .../shaders/nwlyt_ConstColorShader.shbin | Bin 0 -> 328 bytes .../romfiles/shaders/nwlyt_PaneShader.shbin | Bin 0 -> 1060 bytes .../CardCupForNBD/CardCup/scrollBuffer.cpp | 89 -------------- branches/CardCupForNBD/CardCup/scrollBuffer.h | 55 --------- 9 files changed, 27 insertions(+), 257 deletions(-) create mode 100644 branches/CardCupForNBD/CardCup/romfiles/All.arc create mode 100644 branches/CardCupForNBD/CardCup/romfiles/shaders/nwfont_RectDrawerShader.shbin create mode 100644 branches/CardCupForNBD/CardCup/romfiles/shaders/nwfont_TextWriterShader.shbin create mode 100644 branches/CardCupForNBD/CardCup/romfiles/shaders/nwlyt_ConstColorShader.shbin create mode 100644 branches/CardCupForNBD/CardCup/romfiles/shaders/nwlyt_PaneShader.shbin delete mode 100644 branches/CardCupForNBD/CardCup/scrollBuffer.cpp delete mode 100644 branches/CardCupForNBD/CardCup/scrollBuffer.h diff --git a/branches/CardCupForNBD/CardCup/OMakefile b/branches/CardCupForNBD/CardCup/OMakefile index 4e9b587..df3abc5 100644 --- a/branches/CardCupForNBD/CardCup/OMakefile +++ b/branches/CardCupForNBD/CardCup/OMakefile @@ -17,18 +17,33 @@ CTR_APPTYPE=CARD SUPPORTED_TARGETS = CTR-T*.Process.MPCore.* -SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir $(HORIZON_ROOT)/../CTR/SampleDemos/common/include) -INCLUDES += $(SAMPLED_DEMOS_COMMON_INCLUDE_DIR) +INCLUDES += $(NW4C_ROOT)/include SOURCES[] = main.cpp - scrollBuffer.cpp + Drawer.cpp LIBS += lib_demo \ libnn_am \ libnn_cup \ libnn_ns \ +LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_demo) +LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_dev) +LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_lyt) +LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_ut) +LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_font) +LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_gfx) +LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_anim) +LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_os) + +ROMFS_ROOT = romfiles +ROMFS_FILES[] = All.arc +ROMFS_FILES[] += + $(ROMFS_ROOT)/shaders/nwlyt_PaneShader.shbin + $(ROMFS_ROOT)/shaders/nwlyt_ConstColorShader.shbin + $(ROMFS_ROOT)/shaders/nwfont_TextWriterShader.shbin + $(ROMFS_ROOT)/shaders/nwfont_RectDrawerShader.shbin DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/SelfCup.desc @@ -39,6 +54,8 @@ ROM_SPEC_FILE = CardCup.rsf CTR_BANNER_SPEC = $(TARGET_PROGRAM).bsf -include $(ROOT_OMAKE)/modulerules +include $(NW4C_ROOT)/build/omake/modulerules build: $(DEFAULT_TARGETS) + +DefineDefaultRules() diff --git a/branches/CardCupForNBD/CardCup/main.cpp b/branches/CardCupForNBD/CardCup/main.cpp index 2be4b2a..dd16091 100644 --- a/branches/CardCupForNBD/CardCup/main.cpp +++ b/branches/CardCupForNBD/CardCup/main.cpp @@ -30,19 +30,8 @@ #include -#include "demo.h" -#include "scrollBuffer.h" - namespace { - const int s_GxHeapSize=0x800000; - nn::fnd::ExpHeap s_appHeap; - uptr s_GxHeap; - - demo::RenderSystemDrawing s_RenderSystem; - ScrollBuffer s_scrollBufferInstance; - ScrollBuffer *s_scrollBuffer; - char s_updaterBuffer[1<<20] NN_ATTRIBUTE_ALIGN(4096); // デモの初期化 @@ -67,52 +56,9 @@ namespace nn::fs::Initialize(); // appletの初期化 - //nn::applet::InitializeForSystem( nn::applet::PHOME_MENU_APPLET_ID, nn::applet::TYPE_SYS ); - //nn::applet::Initialize( nn::applet::TEST2_APPLET_ID); - //nn::applet::SetAppletMode(); nn::applet::Enable(); nn::cfg::Initialize(); - - // デバイスメモリの設定 - const int DEVICE_MEMORY_SIZE = 12*1024 * 1024; - NN_UTIL_PANIC_IF_FAILED(nn::os::SetDeviceMemorySize(DEVICE_MEMORY_SIZE)); - - // ヒープの初期化 - s_appHeap.Initialize(nn::os::GetDeviceMemoryAddress(), nn::os::GetDeviceMemorySize(), nn::os::ALLOCATE_OPTION_LINEAR); - - // 描画インスタンスの初期化 - s_GxHeap = reinterpret_cast(s_appHeap.Allocate(s_GxHeapSize)); - s_RenderSystem.Initialize(s_GxHeap, s_GxHeapSize); - - // 描画インスタンスの初期化 - s_scrollBufferInstance.Initialize(&s_RenderSystem); - s_scrollBuffer=&s_scrollBufferInstance; - - // GPU利用宣言 - nn::applet::AssignGpuRight(); - } - - // 消費時間取得用関数群 - s64 s_StartTick; - void SetTick() - { - s_StartTick=nn::os::Tick::GetSystemCurrent(); - } - s64 GetConsumedMillisec() - { - s64 endTick=nn::os::Tick::GetSystemCurrent(); - nn::os::Tick consumed(endTick-s_StartTick); - return ((nn::fnd::TimeSpan)consumed).GetMilliSeconds(); - } - - // 動いていることを知らせるための、くるくる画面表示取得用メソッド - const char s_progress[]="-\\|/"; - int s_progressIndex=0; - char GetProgressChar() - { - s_progressIndex=(s_progressIndex+1)%(sizeof(s_progress)-1); - return s_progress[s_progressIndex]; } nn::Result UpdateCore() @@ -121,14 +67,10 @@ namespace nn::cup::ProgressInfo info; /********************** アップデート*******************/ - SetTick(); - s_scrollBuffer->AppendText("Start Card Update")->Render(); NN_UTIL_RETURN_IF_FAILED(nn::cup::CTR::DoUpdate()); // ステータスがStartedになるまで、プログレスは取得できない - s_scrollBuffer->AppendText(""); do{ - s_scrollBuffer->ReplaceText(" %c Initializing", GetProgressChar())->Render(); result = nn::cup::CTR::GetProgressInfo(&info); NN_UTIL_RETURN_IF_FAILED(result); nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(40)); @@ -138,18 +80,11 @@ namespace if(info.state==nn::cup::CTR::UPDATE_STATE_FAILED){ NN_UTIL_RETURN_IF_FAILED(info.lastResult); } - s_scrollBuffer->ReplaceText(" - Initialized (%lldmsec)", GetConsumedMillisec()); /********************* アップデート中 ******************/ - SetTick(); - s_scrollBuffer->AppendText("")->Render(); do{ result = nn::cup::CTR::GetProgressInfo(&info); NN_UTIL_RETURN_IF_FAILED(result); - s_scrollBuffer->ReplaceText(" %c Title %d/%d, size %lld/%lld", - GetProgressChar(), - info.numImportedTitles, info.numTotalTitles, - info.importedSize, info.totalSize)->Render(); nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(40)); }while(info.state==nn::cup::CTR::UPDATE_STATE_STARTED); @@ -157,15 +92,11 @@ namespace if(info.state==nn::cup::CTR::UPDATE_STATE_FAILED){ NN_UTIL_RETURN_IF_FAILED(info.lastResult); } - s_scrollBuffer->AppendText(" - Imported (%lldmsec)", GetConsumedMillisec())->Render(); /***************** アップデート終了中 ******************/ - SetTick(); - s_scrollBuffer->AppendText("")->Render(); do{ result = nn::cup::CTR::GetProgressInfo(&info); NN_UTIL_RETURN_IF_FAILED(result); - s_scrollBuffer->ReplaceText(" %c Update Finalizing", GetProgressChar())->Render(); nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(40)); }while(info.state==nn::cup::CTR::UPDATE_STATE_FINALIZING); // 抜けた際のstateがFAILEDかどうか確認 @@ -174,8 +105,6 @@ namespace } /******************* アップデート終了 *******************/ - s_scrollBuffer->AppendText(" - Finalized (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText(""); return nn::ResultSuccess(); } @@ -186,40 +115,25 @@ namespace nn::Result lastResult=nn::ResultSuccess(); /********************* CUPの初期化 *******************/ - s_scrollBuffer->AppendText("Initializing Cup Library")->Render(); - SetTick(); // 初期化開始前の時間をセット result=nn::cup::CTR::Initialize(s_updaterBuffer,sizeof(s_updaterBuffer)); if(result==nn::cup::CTR::ResultUpdatePartitionNotFound()){ - s_scrollBuffer->AppendText(" - Update Partition Not Found (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText("")->Render(); *isHandledError=true; return result; } if(result==nn::cup::CTR::ResultUpdateNotRequired()){ - s_scrollBuffer->AppendText(" - Already Updated (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText("")->Render(); *isHandledError=true; return result; } if(result==nn::cup::CTR::ResultInvalidUpdatePartitionFormat()){ - s_scrollBuffer->AppendText(" - Invalid Update Partition (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText("")->Render(); *isHandledError=true; return result; } NN_UTIL_RETURN_IF_FAILED(result); - s_scrollBuffer->AppendText(" - Need Update (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText("")->Render(); - lastResult=UpdateCore(); // Initializeに成功した場合のみ、再びInitializeするためにFinalizeが必要 - SetTick(); - s_scrollBuffer->AppendText("Finalizing Cup Library")->Render(); NN_UTIL_RETURN_IF_FAILED(nn::cup::CTR::Finalize()); - s_scrollBuffer->AppendText(" - Complete (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText("")->Render(); return lastResult; } @@ -256,31 +170,25 @@ extern "C" void nnMain() break; } - nn::am::ProgramInfo outInfos; result = nn::am::GetProgramInfos(&outInfos, nn::fs::MEDIA_TYPE_NAND, &MMEN_PROGRAM_ID, 1); if (result.IsSuccess()) { - /******************** CUPの実行 *******************/ bool isHandledError = false; result = UpdateSequence(&isHandledError); if (isHandledError == false && result.IsFailure()) { { - // それ以外の場合は、Resultを表示 - s_scrollBuffer->AppendText(" - Unhandled Error: 0x%08x", result.GetPrintableBits()); - s_scrollBuffer->AppendText("")->Render(); + // TODO:それ以外の場合は、エラーアプレットを表示 } } } else if(result == nn::am::ResultNotFound()) { - s_scrollBuffer->AppendText("Cannot find Home Menu"); + // TODO:HOMEメニューが無いエラーをエラーアプレットで表示する } - s_scrollBuffer->AppendText("")->Render(); - nn::os::Tick before = nn::os::Tick::GetSystemCurrent(); const u8 SHUTDOWN_WAIT_SECONDS = 2; for(;;) @@ -291,27 +199,16 @@ extern "C" void nnMain() break; } - s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY0); + // 画面描画 if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired()) { - s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 0, 1, 0, 1); + // TODO:成功したので終了処理に入る + } else { - s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 1, 0, 0, 1); + // TODO:失敗したのでエラー表示を続ける } - s_RenderSystem.Clear(); - s_RenderSystem.SwapBuffers(); - s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY1); - if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired()) - { - s_RenderSystem.SetClearColor(NN_GX_DISPLAY1, 0, 1, 0, 1); - } - else - { - s_RenderSystem.SetClearColor(NN_GX_DISPLAY1, 1, 0, 0, 1); - } - s_scrollBuffer->ReplaceText("%c Finished", GetProgressChar())->Render(); if ( nn::applet::IsExpectedToCloseApplication() ) { diff --git a/branches/CardCupForNBD/CardCup/romfiles/All.arc b/branches/CardCupForNBD/CardCup/romfiles/All.arc new file mode 100644 index 0000000000000000000000000000000000000000..bd3656023304ecc1727d96141d39a02bb06f97d0 GIT binary patch literal 147656 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 literal 0 HcmV?d00001 diff --git a/branches/CardCupForNBD/CardCup/romfiles/shaders/nwfont_RectDrawerShader.shbin b/branches/CardCupForNBD/CardCup/romfiles/shaders/nwfont_RectDrawerShader.shbin new file mode 100644 index 0000000000000000000000000000000000000000..19b4ea610b4990159af3bfe23d32f182203f1002 GIT binary patch literal 964 zcmXw&PfQa*6vkhtv@8qQf(W$0cDr~$4u%*mdSSMy2_c(xgQOvZL^e=^Ndy*FRe&rH_zOxAa^=APR(7hLL}+hJ$I_YU^WrBfc}z&UVE@K4^#gY)3L;6FSX0gr%3z@r|!M$N=gZkfHJ zMLQb%zyEpr(4d#Dk^STv=5Lp#?XUnYfD3}lcFP2tU{mmd9TmYva8WS&%Pg1PP}7cN zpLIJdP9e{c_mJPUTL#zw8-g((JtQs9cB~cOvF-%oj7<^O8k3C-ob~tVMkn;iC^hhV zsWzl^oGCqy^{Jsa-O%Oy)PQ20rzEe%bynl`%~Mr(H`bk4zkXJ6To<`t>BXd6A3jw2 zqoCpo`-+2j-LsP!Iq!R%Z^wPLPgK2jT(7OE^*EcXUp}YQ8H=@7Y0of`IB$=pbQ2)> z=H^EI#(Z_PUf%NWRkyCM`)k#$i`#d_UB}(OD(=1*f)iAbK9@ex0#rPMIxGb{fQff= z1RI1g8HGbLFpdskat6^~3;-x0YYP@N#1Q|9AucotPxP6>S7@3#r1ruWA OQnxGh`(?lGBmNKLN5?4u literal 0 HcmV?d00001 diff --git a/branches/CardCupForNBD/CardCup/romfiles/shaders/nwfont_TextWriterShader.shbin b/branches/CardCupForNBD/CardCup/romfiles/shaders/nwfont_TextWriterShader.shbin new file mode 100644 index 0000000000000000000000000000000000000000..629eacf6283c8a1b98a3de0e6e721abb17a22ec1 GIT binary patch literal 484 zcmX|-ze~eF6vtmKwv84^!5@Q*ZgooC90Xf!#U+xUrGiU|<|L7tgEZB;6|CampW>h3 zP;l@ca2K*TTK@w5z9#sNPd@K1cQ1L@>e%}l5q*GG$9Ba6(I#>e_+TEq01o!rESor5 zW#WkGyQ4d4d9It53o0#(>6deF3S+!3jE9;q9_zv={Zu!Mt%i+bPhi~BX`~|&lzDF@ zbMRIim9XyTKF{st{{GC~*F?7eQbkF(Er-cz940b82|QoM)=fV^4fJuqeQrl!E=$X>&UqFBELZJ zz44hUEHErs$Jl`@v_yySGOg0J7e*u_e`e2B{V)ktWDW1=e{yCG$!n^fipj$bG?j{d X-Y{@ubtNx&KMjtQFMFL(-lFawUolu6 literal 0 HcmV?d00001 diff --git a/branches/CardCupForNBD/CardCup/romfiles/shaders/nwlyt_ConstColorShader.shbin b/branches/CardCupForNBD/CardCup/romfiles/shaders/nwlyt_ConstColorShader.shbin new file mode 100644 index 0000000000000000000000000000000000000000..093513cd1b93783dddcbda29b01fefc5ea3196a5 GIT binary patch literal 328 zcmXYrONzok6h&XkUobQ_C8zz_6OE7|lAsPQfQ#MdFv~4N=9bv!R_&5oSx1=P17SWU z!u**E6F2_Aum5UhEd;Ofp|V>!yr;W`j*@htLmh8@*HiKMn)qnpzpVH#Tr2~FYgWvq z1@a#72{+Y12F9S=C3>UEl~KII>qc=-)PX;$Y{Q?_r6JrSo6c?!k&3*+uGC4820EfI S8S9femU*K+6*_^sq30i6$~uhz literal 0 HcmV?d00001 diff --git a/branches/CardCupForNBD/CardCup/romfiles/shaders/nwlyt_PaneShader.shbin b/branches/CardCupForNBD/CardCup/romfiles/shaders/nwlyt_PaneShader.shbin new file mode 100644 index 0000000000000000000000000000000000000000..788bce464f06f38e258431e22211e8629b4bcd8d GIT binary patch literal 1060 zcmZ9KO-vI(6vtm@*>*|;<DQ(3|eXkdWxf#Dqje6O1R%UM#)n!GvBsfQkBMcbkASdGmYk{ol^)&c318MA!iU z69ix=HW4M&038@#Kr5iojO;{>4aP>Kqv#Sy(Is+aLoDpR5cufxuEHgK-5Jyj4niU+ zj*6ULLeoWOxm|P>zq@GJF~)_)MNYdWa_{bm90WuzQ;HOC`OExR$>Y9Q@>C~E9uI6q zmb`?n_z1n*P3Zl8LT~>N{Cm%VKHaFqT=ac}oy}!7M8`ADsPTLhYSCz5K%l*nK*x2V zQp@VRzc&ed(F{H?K=@vX@Z&n!tHV#taHHl%&HcYdb)#-)lswqEO6qo(_dnOB8}+C? zM6DjRs%?E8PU%L2e?V*qN@7Du7xC%}jVoc=^fXK#txnU&Z>DME=SAA|b&;ZWhv{qK zrEgwzA|ITZ3&}Nu#vv6uUaJN(pRnU?pQT4Ot@@OmkK3HKxnD=- z`{6h&AlslFmXRG0fG5aK=!R8f5a*nfOoN<`o0MX*nw9fs(s4Ntxu~kl$}`!dl7`$_ zB`&98N%=bD&Z|;-{)(c`p)2RlX7j;{(^GLyLT*q=DJtYfRB2A0%*Zp4v-Y<0R)EhB cDvBD%9rh=1r~L`s@!U)X>nD>p -#include "scrollBuffer.h" - -using namespace std; - -char ScrollBuffer::s_buffers[MAX_BUFFER_LINE][MAX_BUFFER_CHARS]; - -char *ScrollBuffer::GetFormattedString(const char *fmt, va_list arg) -{ - static char formattedBuffer[MAX_BUFFER_CHARS]; - vsnprintf(formattedBuffer, MAX_BUFFER_CHARS, fmt, arg); - return formattedBuffer; -} - -ScrollBuffer *ScrollBuffer::Update() -{ - return this; -} - -ScrollBuffer *ScrollBuffer::AppendText(const char *fmt, ...) -{ - va_list vlist; - va_start(vlist, fmt); - - int nextPosition=(m_tail+1)%MAX_BUFFER_LINE; - if(nextPosition==m_head){ - // ヘッドとビューの移動 - if(m_head==m_currentView){ - m_currentView=(m_head+1)%MAX_BUFFER_LINE; - } - m_head=(m_head+1)%MAX_BUFFER_LINE; - - } - strlcpy(s_buffers[m_tail], GetFormattedString(fmt, vlist), MAX_BUFFER_CHARS); - m_tail=nextPosition; - NN_LOG("cup: %s\n", GetFormattedString(fmt, vlist)); - - // ビューの移動 - if((m_currentView+MAX_DISPLAY_LINES)%MAX_BUFFER_LINE==m_tail){ - m_currentView=(m_currentView+1)%MAX_BUFFER_LINE; - } - - return this; -} -ScrollBuffer *ScrollBuffer::ReplaceText(const char *fmt, ...) -{ - va_list vlist; - va_start(vlist, fmt); - - NN_ASSERT(m_tail!=m_head); - strlcpy(s_buffers[(m_tail-1)%MAX_BUFFER_LINE], GetFormattedString(fmt, vlist), MAX_BUFFER_CHARS); - - return this; -} - -void ScrollBuffer::Render() -{ - // 描画前処理 - m_render->SetRenderTarget(NN_GX_DISPLAY1); - m_render->Clear(); - m_render->SetColor(1.0f, 1.0f, 1.0f, 1.0f); - - // リングバッファなので、終端条件を調整 - int tail=(m_tailDrawText(0, (i-m_currentView)*FONT_SIZE, s_buffers[i%MAX_BUFFER_LINE]); - } - } - - // 描画転送 - m_render->SwapBuffers(); -} diff --git a/branches/CardCupForNBD/CardCup/scrollBuffer.h b/branches/CardCupForNBD/CardCup/scrollBuffer.h deleted file mode 100644 index 1d3563a..0000000 --- a/branches/CardCupForNBD/CardCup/scrollBuffer.h +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------* - Project: Horizon - File: scrollBuffer.h - - Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. - - These coded instructions, statements, and computer programs contain - proprietary information of Nintendo of America Inc. and/or Nintendo - Company Ltd., and are protected by Federal copyright law. They may - not be disclosed to third parties or copied or duplicated in any form, - in whole or in part, without the prior written consent of Nintendo. - - $Rev$ - *---------------------------------------------------------------------------*/ - -#ifndef SCROLL_BUFFER_H_ -#define SCROLL_BUFFER_H_ - -#include "demo.h" -class ScrollBuffer -{ -private: - enum - { - MAX_BUFFER_LINE=128, - MAX_BUFFER_CHARS=80, - MAX_DISPLAY_LINES=20, - FONT_SIZE=12 - }; - // 表示文字のバッファ (リングバッファ) - static char s_buffers[MAX_BUFFER_LINE][MAX_BUFFER_CHARS]; - int m_head; - int m_tail; - int m_currentView; - - demo::RenderSystemDrawing *m_render; - - char *GetFormattedString(const char *fmt, va_list arg); - -public: - ScrollBuffer() : - m_head(0), m_tail(0), m_currentView(0) - {} - void Initialize(demo::RenderSystemDrawing *render) - { - m_render=render; - } - - ScrollBuffer *Update(); // キー入力を参照して、スクロールする - ScrollBuffer *AppendText(const char *fmt, ...); // 文字列を追加する - ScrollBuffer *ReplaceText(const char *fmt, ...); // 最新の文字列を置換する - void Render(); // レンダリング -}; - -#endif // SCROLL_BUFFER_H