示例#1
0
 //----------------------- SUB FRAME BY LIMITS ------------------------
 MemoryFrame MemoryFrame::getSubFrameByLimits(int from, int to)
 {
   from = _limit(from, 0, this->frameSize);
   to =   _limit(to, from, this->frameSize);
   return MemoryFrame(
     (void*)((int)this->frameBase + from),
     to - from);
 }
示例#2
0
 //----------------------- SUB FRAME BY SIZE --------------------------
 MemoryFrame MemoryFrame::getSubFrame(int from, int size)
 {
   from = _limit(from, 0, this->frameSize);
   size = _limit(size, 0, this->frameSize-from);
   return MemoryFrame(
     (void*)((int)this->frameBase + from),
     size);
 }
示例#3
0
	static inline
	GLuint _check_u(GLuint value, const char* query_name)
	{
		OGLPLUS_HANDLE_ERROR_IF(
			!(value < _limit()),
			GL_INVALID_VALUE,
			LimitError::Message(),
			LimitError,
			Value(value).
			Limit(_limit()).
			EnumParam(Query, query_name)
		);
		return value;
	}
// 12.63 % of time - this can improve
static void
_calc_spans(RGBA_Map_Point *p, Line *spans, int ystart, int yend, int cx, int cy, int cw, int ch)
{
   int i, y, yp;
   int py[4];
   int edge[4][4], edge_num, swapped, order[4];
   FPc uv[4][2], u, v, x, h, t;
   DATA32 col[4];
   
#if 1 // maybe faster on x86?
   for (i = 0; i < 4; i++) py[i] = p[i].y >> FP;
# define PY(x) (py[x])   
#else
# define PY(x) (p[x].y >> FP) 
#endif
   
   if ((PY(0) == PY(1)) && (PY(0) == PY(2)) && (PY(0) == PY(3)))
     {
        int leftp, rightp;
        int nocol = 1;
        
        leftp = rightp = 0;
        for (i = 1; i < 4; i++)
          {
             if (p[i].x < p[leftp].x) leftp = i;
             if (p[i].x > p[rightp].x) rightp = i;
             if (p[i].col != 0xffffffff) nocol = 0;
          }
        for (y = ystart; y <= yend; y++)
          {
             yp = y - ystart;
             if (y == PY(0))
               {
                  i = 0;
                  spans[yp].span[i].x1 = p[leftp].x >> FP;
                  spans[yp].span[i].o1 = p[leftp].x;
                  spans[yp].span[i].u[0] = p[leftp].u;
                  spans[yp].span[i].v[0] = p[leftp].v;
                  spans[yp].span[i].col[0] = p[leftp].col;
                  spans[yp].span[i].x2 = p[rightp].x >> FP;
                  spans[yp].span[i].o2 = p[rightp].x;
                  spans[yp].span[i].u[1] = p[rightp].u;
                  spans[yp].span[i].v[1] = p[rightp].v;
                  spans[yp].span[i].col[1] = p[rightp].col;
                  if ((spans[yp].span[i].x1 >= (cx + cw)) ||
                      (spans[yp].span[i].x2 < cx))
                    spans[yp].span[i].x1 = -1;
                  else
                    {
                       _limit(&(spans[yp].span[i]), cx, cx + cw, nocol);
                       i++;
                       spans[yp].span[i].x1 = -1;
                    }
               }
             else
示例#5
0
std::string CSvnController::log(const std::string& strURL, int nLimit, bool bXML, bool bVerbose)
{
	std::string _log;
	_log += log(strURL);
	_log += _limit(nLimit);

	if (bXML)
		_log += _xml();

	if (bVerbose)
		_log += _verbose();

	return _log;
	//return dispatchToString(_log);
}