Ejemplo n.º 1
0
void
TaskMapButtonRenderer::DrawButton(Canvas &canvas, const PixelRect &rc,
                                  gcc_unused bool enabled,
                                  gcc_unused bool focused,
                                  bool pressed) const
{
  if (task == nullptr) {
    canvas.ClearWhite();
    return;
  }

  const PixelSize new_size(rc.right - rc.left,
                           rc.bottom - rc.top);
  if (!IsBufferValid(new_size)) {
    if (!buffer.IsDefined()) {
#ifdef ENABLE_OPENGL
      buffer.Create(new_size);
#else
      buffer.Create(canvas, new_size);
#endif
    } else
      buffer.Grow(new_size);

    size = new_size;

#ifdef ENABLE_OPENGL
    buffer.Begin(canvas);
#endif

    const PixelRect buffer_rc(0, 0, new_size.cx, new_size.cy);
    DrawTask(buffer, buffer_rc, look, *task);

#ifdef ENABLE_OPENGL
    buffer.Commit(canvas);
#endif
  } else {
#ifdef ENABLE_OPENGL
    buffer.CopyTo(canvas);
#endif
  }

#ifndef ENABLE_OPENGL
  canvas.Copy(buffer);
#endif

  if (pressed) {
#ifdef ENABLE_OPENGL
    const ScopeAlphaBlend alpha_blend;
    canvas.DrawFilledRectangle(rc, COLOR_YELLOW.WithAlpha(80));
#else
    canvas.InvertRectangle(rc);
#endif
  }
}
	//modifies the Buffer, by removing the Header
	PacketHeader ExtractHeader( char *buffer,unsigned int size )
	{
		XNetInfo xInfo;	
		memset(&xInfo,0,sizeof(xInfo));

		if(size >= sizeof(XNetInfo))
		{
			memcpy(&xInfo,buffer,sizeof(XNetInfo));	
			if(IsBufferValid((char*)&xInfo))
			{			
				//Now remove the header
				memmove(buffer,buffer + sizeof(XNetInfo),size - sizeof(XNetInfo));			
				return xInfo;
			}
		}

		xInfo.m_darknet_xId = -1;

		return xInfo;
	}