mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@548 385bec56-5757-e545-9c3a-d8741f4650f1
102 lines
2.6 KiB
C++
102 lines
2.6 KiB
C++
/*---------------------------------------------------------------------------*
|
|
Project: Horizon
|
|
File: LogConsole.h
|
|
|
|
Copyright 2009 Nintendo. 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 LOGCONSOLE_H_
|
|
#define LOGCONSOLE_H_
|
|
|
|
#include <vector>
|
|
#include <string>
|
|
#include <nn/fnd.h>
|
|
#include "demo.h"
|
|
|
|
namespace common
|
|
{
|
|
|
|
struct LogText
|
|
{
|
|
LogText(std::string text, f32 red, f32 green, f32 blue, f32 alpha) :
|
|
m_Text(text), m_Red(red), m_Green(green), m_Blue(blue), m_Alpha(alpha)
|
|
{
|
|
|
|
}
|
|
|
|
std::string m_Text;
|
|
f32 m_Red;
|
|
f32 m_Green;
|
|
f32 m_Blue;
|
|
f32 m_Alpha;
|
|
};
|
|
|
|
//! @brief 画面にテキストコンソールを描画します
|
|
class LogConsole
|
|
{
|
|
|
|
public:
|
|
LogConsole();
|
|
~LogConsole();
|
|
|
|
void Initialize(u32 width, u32 height, u32 maxLine, demo::RenderSystemDrawing* renderSystem);
|
|
|
|
// コンソールに描画する文字列を追加する
|
|
void AddText(const char* fmt, ::std::va_list arg);
|
|
|
|
// コンソールに描画する文字を変更する
|
|
void SetTextColor(f32 red, f32 green, f32 blue, f32 alpha);
|
|
|
|
// 上スクロールする
|
|
void ScrollUp();
|
|
|
|
// 下スクロールする
|
|
void ScrollDown();
|
|
|
|
// 先頭にスクロールする
|
|
void ScrollToBegin();
|
|
|
|
// 末尾にスクロールする
|
|
void ScrollToEnd();
|
|
|
|
// AddTextで追加された文字列を描画する
|
|
void Print();
|
|
|
|
private:
|
|
void AddWrapedText(const char* str);
|
|
void DrawScrollBar();
|
|
|
|
::std::vector<LogText> m_Log;
|
|
|
|
//! @brief コンソールの列数
|
|
u32 m_Width;
|
|
//! @brief コンソールの行数
|
|
u32 m_Height;
|
|
//! @brief コンソールのログの最大行数
|
|
u32 m_MaxLine;
|
|
//! @brief 描画のためのRenderSystemDrawingへのポインタ
|
|
demo::RenderSystemDrawing* m_pRenderSystem;
|
|
//! @brief 追加したログの行数
|
|
u32 m_LineNum;
|
|
//! @brief 表示を開始するログの行数
|
|
u32 m_CurrentViewLine;
|
|
//! @描画フォントの色
|
|
f32 m_ColorRed;
|
|
f32 m_ColorGreen;
|
|
f32 m_ColorBlue;
|
|
f32 m_ColorAlpha;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
#endif /* LOGCONSOLE_H_ */
|