本文整理汇总了C++中VideoPtr::DrawRectangle方法的典型用法代码示例。如果您正苦于以下问题:C++ VideoPtr::DrawRectangle方法的具体用法?C++ VideoPtr::DrawRectangle怎么用?C++ VideoPtr::DrawRectangle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VideoPtr
的用法示例。
在下文中一共展示了VideoPtr::DrawRectangle方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DrawTab
bool EditorBase::DrawTab(VideoPtr video, InputPtr input, const Vector2 &v2Pos, const float width, const wstring &text, Color color)
{
video->SetAlphaMode(Video::AM_PIXEL);
video->SetVertexShader(ShaderPtr());
video->SetPixelShader(ShaderPtr());
video->SetZBuffer(false);
video->SetZWrite(false);
const Vector2 v2Cam = video->GetCameraPos();
video->SetCameraPos(Vector2(0,0));
bool mouseOver = false;
if (mouseOver = ETHGlobal::PointInRect(input->GetCursorPositionF(video), v2Pos+Vector2(width/2, m_menuSize), Vector2(width, m_menuSize)))
{
if (color.a < 200)
color.a = 200;
}
const Vector2 v2CurveSize = m_curve->GetBitmapSizeF();
const float rectWidth = width-v2CurveSize.x*2;
m_curve->FlipX();
m_curve->Draw(v2Pos, color);
const Vector2 v2RectPos = v2Pos+Vector2(v2CurveSize.x, 0);
video->DrawRectangle(v2RectPos, Vector2(rectWidth, m_menuSize*2), color);
m_curve->FlipX();
m_curve->Draw(v2Pos+Vector2(v2CurveSize.x+rectWidth, 0), color);
ShadowPrint(v2RectPos+Vector2(v2CurveSize.x, m_menuSize/2), text.c_str(), L"Verdana14_shadow.fnt", Color(color.a,255,255,255));
video->SetCameraPos(v2Cam);
return (mouseOver && input->GetKeyState(GSK_LMOUSE) == GSKS_HIT);
}
示例2: DrawInputFieldRect
void CustomDataEditor::DrawInputFieldRect(const Vector2 &v2Pos,
const GS_GUI *pGui,
EditorBase *pEditor,
const str_type::char_t *text) const
{
VideoPtr video = pEditor->GetVideoHandler();
const Vector2 v2BorderSize(5, 5);
const Vector2 v2FinalPos(v2Pos - v2BorderSize-Vector2(0, pGui->GetSize()));
const Vector2 v2Size(Vector2(pGui->GetWidth(), pGui->GetSize() * 2 + pEditor->GetMenuSize()) + v2BorderSize * 2);
const GSGUI_STYLE* style = pGui->GetGUIStyle();
video->DrawRectangle(v2FinalPos, v2Size, style->active_top, style->active_top, style->active_bottom, style->active_bottom);
pEditor->ShadowPrint(Vector2(v2FinalPos.x, v2FinalPos.y + v2Size.y - pEditor->GetMenuSize()), text, gs2d::constant::BLACK);
}
示例3: PlaceInput
void GSGUI_STRING_INPUT::PlaceInput(const Vector2& pos, const str_type::string& font, const unsigned int nMaxChars,
const float size, const Color& dwColor, VideoPtr video,
InputPtr input)
{
const unsigned int time = video->GetElapsedTime();
if ((time-lastBlink) > blinkTime)
{
showingCarret = showingCarret==0 ? 1 : 0;
lastBlink = video->GetElapsedTime();
}
// pick the text cursor position with a mouse click
if (input->GetLeftClickState() == GSKS_HIT)
{
cursor = video->FindClosestCarretPosition(font, ss, pos, input->GetCursorPositionF(video));
}
// don't let the cursor exceed the text range
cursor = Min(cursor, static_cast<unsigned int>(ss.length()));
str_type::char_t lastInput = input->GetLastCharInput();
if (lastInput != '\0' && ss.length() < nMaxChars)
{
if (numbersOnly)
{
if ((lastInput < 'a' || lastInput > 'z') &&
(lastInput < 'A' || lastInput > 'Z'))
{
ss.insert(cursor, 1, lastInput);
}
}
else
{
ss.insert(cursor, 1, lastInput);
}
cursor++;
}
if (input->GetKeyState(GSK_BACK) == GSKS_HIT)
{
if (cursor > 0)
{
ss.erase(cursor-1, 1);
cursor--;
}
}
if (input->GetKeyState(GSK_DELETE) == GSKS_HIT)
{
if (cursor < ss.length())
{
ss.erase(cursor, 1);
}
}
if (input->GetKeyState(GSK_LEFT) == GSKS_HIT)
{
if (cursor > 0)
cursor--;
}
if (input->GetKeyState(GSK_RIGHT) == GSKS_HIT)
{
cursor = Min(++cursor, static_cast<unsigned int>(ss.length()));
}
if (input->GetKeyState(GSK_END) == GSKS_HIT)
{
SendCursorToEnd();
}
const Vector2 cursorPosition = video->ComputeCarretPosition(font, ss, cursor);
video->DrawBitmapText(pos, ss, font, dwColor);
if (showingCarret==1)
video->DrawRectangle(cursorPosition+pos-Vector2(2,0), Vector2(2,size), gs2d::constant::BLACK, gs2d::constant::BLACK, gs2d::constant::BLACK, gs2d::constant::BLACK, 0.0f);
}