Exemple #1
0
///////////////////////////////////
// nuiPainter implementation:
nuiPainter::nuiPainter(const nuiRect& rRect, nglContext* pContext) 
{
  ResetStats();
  mWidth = ToNearest(rRect.GetWidth());
  mHeight = ToNearest(rRect.GetHeight());
  mMatrixStack.push(nuiMatrix());
  mProjectionMatrixStack.push(nuiMatrix());
  mProjectionViewportStack.push(nuiRect());
  
  mDummyMode = false;
  mpSurface = NULL;

  mAngle=0;

  mEnableDrawArray = true;
}
Exemple #2
0
void render_handler_nui::apply_matrix(const gameswf::matrix& m)
// multiply current matrix with opengl matrix
{
  float  mat[16];
  memset(&mat[0], 0, sizeof(mat));
  mat[0] = m.m_[0][0];
  mat[1] = m.m_[1][0];
  mat[4] = m.m_[0][1];
  mat[5] = m.m_[1][1];
  mat[10] = 1;
  mat[12] = m.m_[0][2];
  mat[13] = m.m_[1][2];
  mat[15] = 1;
  //glMultMatrixf(mat);
  mpContext->MultMatrix(nuiMatrix(mat));
}
Exemple #3
0
void nuiPainter::StartRendering()
{
  mpClippingStack = std::stack<nuiClipper>();

  uint32 w = mWidth, h = mHeight;
  mClip.Set(0, 0, w, h);
  
  while (!mMatrixStack.empty())
    mMatrixStack.pop();
  mMatrixStack.push(nuiMatrix());

  while (!mProjectionMatrixStack.empty())
  {
    mProjectionMatrixStack.pop();
    mProjectionViewportStack.pop();
  }
  nuiMatrix m;
  m.Translate(-1.0f, 1.0f, 0.0f);
  m.Scale(2.0f/(float)mWidth, -2.0f/(float)mHeight, 1.0f);
  mProjectionMatrixStack.push(m);
  mProjectionViewportStack.push(nuiRect(0, 0, mWidth, mHeight));
}
Exemple #4
0
void nuiMetaPainter::Reset(nuiPainter const * pFrom)
{
  mOperationIndices.clear();
  mNbOperations = 0;
  mLastSize = -1;
  mOperationPos = 0;
  mLastStateValid = false;
  mNbDrawChild = 0;
  mNbDrawArray = 0;
  mNbClearColor = 0;
  mRenderOperations = 0;
  mBatches = 0;
  mVertices = 0;
  
  mOperations.clear();
  mRenderStates.clear();
  for (uint32 i = 0; i < mRenderArrays.size(); i++)
    mRenderArrays[i]->Release();
  mRenderArrays.clear();
  
  mpClippingStack = std::stack<nuiClipper>();
  mMatrixStack = std::stack<nglMatrixf>();

  mMatrixStack.push(nuiMatrix());

  if (pFrom)
  {
    mState = pFrom->GetState();
    pFrom->GetSize(mWidth, mHeight);
    bool clip = pFrom->GetClipRect(mClip, false);
    
    nuiMatrix m(pFrom->GetMatrix());
    mClip.Move(-m.Elt.M14, -m.Elt.M24);
    mClip.mEnabled = clip;
  }
}