char CCanvas::GetPixel(int x, int y) const { if (x < 0 || x > (int)GetWidht() || y < 0 || y > (int)GetHeight()) { return ' '; } return m_canvas[y][x]; }
//---------------------------------------------------------------------------------------------------- EEProgressbar::EEProgressbar(const Rect_Float& _progressRect, const Rect_Float& _frameRect, const EETexture& _progressTex, const EETexture& _frameTex, std::function<void(float)> _funcPtr) : EEQuad2D(_progressRect, _progressTex), m_progressFrame(_frameRect - FLOAT2(GetWidht() / 2, GetHeight() / 2), _frameTex), m_progress(0.0f), m_isProgressDirty(false), m_callbackFunc(_funcPtr) { m_progressFrame.SetParent(this); SetIsFocusable(true); }
void CCanvas::SetPixel(int x, int y, char code) { if (code < ' ') { return; } if (x < 0 || x > (int) GetWidht() || y < 0 || y > (int) GetHeight()) { return; } m_canvas[y][x] = code; }
void CCanvas::Clear(char code) { if (code < ' ') { return; } for (size_t y = 0; y != GetHeight(); ++y) { for (size_t x = 0; x != GetWidht(); ++x) { m_canvas[y][x] = code; } } }
//---------------------------------------------------------------------------------------------------- bool EEFloatBoard::Update() { if (!EEQuad2D::Update()) return false; if (m_isRangeDirty) { m_num.clear(); m_num.resize(m_intRange + m_decimalRange + 1); int width = (int)(m_quadWidth / m_num.size()); //the size should not be zero for (unsigned int i = 0; i < m_num.size(); ++i) { m_num[i].SetParent(this); m_num[i].SetLocalZOrder(m_localZOrder); //It is wrong~~ m_num[i].SetRect(Rect_Float((float)(m_num.size() - i - 1) * width, 0.0f, (float)(m_num.size() - i) * width, (float)m_quadHeight) - FLOAT2(GetWidht() / 2, GetHeight() / 2)); m_num[i].SetIsUseColor(false); m_num[i].SetIsUseTex(true); } m_isRangeDirty = false; } if (m_isValueDirty) { float value = m_value >= 0 ? m_value : -m_value; int intValue = (int)value; for (int i = 0; i < m_intRange; ++i) { m_num[i].SetTexture(m_numTexs[intValue % 10]); intValue /= 10; } m_num[m_intRange].SetTexture(m_numTexs[10]); float decimalValue = value - intValue; for (unsigned int i = m_intRange + 1; i < m_num.size(); ++i) { m_num[i].SetTexture(m_numTexs[intValue % 10]); intValue /= 10; } m_isValueDirty = false; } for (unsigned int i = 0; i < m_num.size(); ++i) { m_num[i].Update(); } return true; }