⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sitetran.cpp

📁 linux下的一款播放器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
         int horzOffset = (int)(5.0 - i / 2);         int vertOffset = (int)((9.0 - i) / 2);         int vertOffsetRt = (int)(i / 2+ 4);                                 for (j = 0; j < i; ++j, ++blockIdx)         {            blockTransList[blockIdx].CreateList(1);            MatrixBlockTransition* list = blockTransList[blockIdx].GetListPtr();                                            list->block = (j + vertOffset) * 8 + vertOffset;            list->invert = 0;            list->transition = SlideVerticalEdgeWipe;         }         for (j = 0; j < i - 2; ++j, ++blockIdx)         {            blockTransList[blockIdx].CreateList(1);            MatrixBlockTransition* list = blockTransList[blockIdx].GetListPtr();                                            list->block = j + (i / 2 + 3) * 8 + (10 - i) / 2;            list->invert = 0;            list->transition = EdgeWipe;         }         for (j = 0; j < i; ++j, ++blockIdx)         {            blockTransList[blockIdx].CreateList(1);            MatrixBlockTransition* list = blockTransList[blockIdx].GetListPtr();                                            list->block = (vertOffsetRt - j) * 8 - vertOffset - 1;            list->invert = 1;            list->transition = SlideVerticalEdgeWipe;         }         for (j = 0; j < i - 2; ++j, ++blockIdx)         {            blockTransList[blockIdx].CreateList(1);            MatrixBlockTransition* list = blockTransList[blockIdx].GetListPtr();                                            list->block = 7 * horzOffset - 1 - j;            list->invert = 1;            list->transition = EdgeWipe;         }      }                      z_ccwTopLeftDataBuffer = new CHXBuffer();      z_ccwTopLeftDataBuffer->AddRef();      z_ccwTopLeftDataBuffer->Set((UCHAR*)&VerticalMatrixTransition, sizeof(UCHAR*));   }   else if (completeness == MATRIX_TRANSITION_DELETE)   {      delete *((MatrixTransitionData**)z_ccwTopLeftDataBuffer->GetBuffer());      if (!z_ccwTopLeftDataBuffer->Release())      {         z_ccwTopLeftDataBuffer = NULL;         return HXCreateRegion();      }   }           return MatrixTransition(left,top,right,bottom,completeness,*((MatrixTransitionData**)z_ccwTopLeftDataBuffer->GetBuffer()),lines);}HXREGION* CounterClockwiseTopRightMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   HXREGION* retRGN = MirrorVertical(ClockwiseTopLeftMatrix(left,top,right,bottom,completeness,lines),left + (right - left + 1) / 2);   if (lines)      MirrorVertical(lines,left + (right - left + 1) / 2);   return retRGN;}HXREGION* CounterClockwiseBottomRightMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   HXREGION* retRGN = MirrorHorizontal(MirrorVertical(CounterClockwiseTopLeftMatrix(left,top,right,bottom,completeness,lines),left + (right - left + 1) / 2),top + (bottom - top + 1) / 2);   if (lines)   {      MirrorHorizontal(lines,top + (bottom - top + 1) / 2);      MirrorVertical(lines,left + (right - left + 1) / 2);   }   return retRGN;}HXREGION* CounterClockwiseBottomLeftMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   HXREGION* retRGN = MirrorHorizontal(ClockwiseTopLeftMatrix(left,top,right,bottom,completeness,lines),top + (bottom - top + 1) / 2);   if (lines)      MirrorHorizontal(lines,top + (bottom - top + 1) / 2);   return retRGN;}HXREGION* VerticalStartTopMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   static CHXBuffer* z_verticalTopDataBuffer = NULL;           if (!z_verticalTopDataBuffer || completeness == MATRIX_TRANSITION_INIT)   {      MatrixTransitionData* VerticalMatrixTransition = new MatrixTransitionData(8,1,4);      MatrixBlockTransitionList* blockTransList = VerticalMatrixTransition->GetTransactionListPtr();                      for (int i = 0; i < 4; ++i)      {         blockTransList[i].CreateList(2);         MatrixBlockTransition* list = blockTransList[i].GetListPtr();                                 list[0].invert = list[1].invert = i & 1;         list[0].transition = list[1].transition = SlideVerticalEdgeWipe;         list[0].block = i;         list[1].block = 7 - i;      }                      z_verticalTopDataBuffer = new CHXBuffer();      z_verticalTopDataBuffer->AddRef();      z_verticalTopDataBuffer->Set((UCHAR*)&VerticalMatrixTransition, sizeof(UCHAR*));   }   else if (completeness == MATRIX_TRANSITION_DELETE)   {      delete *((MatrixTransitionData**)z_verticalTopDataBuffer->GetBuffer());      if (!z_verticalTopDataBuffer->Release())      {         z_verticalTopDataBuffer = NULL;         return HXCreateRegion();      }   }           return MatrixTransition(left,top,right,bottom,completeness,*((MatrixTransitionData**)z_verticalTopDataBuffer->GetBuffer()),lines);}HXREGION* VerticalStartBottomMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   HXREGION* retRGN = MirrorHorizontal(VerticalStartTopMatrix(left,top,right,bottom,completeness,lines),top + (bottom - top + 1) / 2);   if (lines)      MirrorHorizontal(lines,top + (bottom - top + 1) / 2);   return retRGN;}HXREGION* VerticalStartTopOppositeMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   static CHXBuffer* z_verticalTopOppDataBuffer = NULL;           if (!z_verticalTopOppDataBuffer || completeness == MATRIX_TRANSITION_INIT)   {      MatrixTransitionData* VerticalMatrixTransition = new MatrixTransitionData(8,1,4);      MatrixBlockTransitionList* blockTransList = VerticalMatrixTransition->GetTransactionListPtr();                      for (int i = 0; i < 4; ++i)      {         blockTransList[i].CreateList(2);         MatrixBlockTransition* list = blockTransList[i].GetListPtr();                                 list[0].invert = i & 1;         list[1].invert = !list[0].invert;         list[0].transition = list[1].transition = SlideVerticalEdgeWipe;         list[0].block = i;         list[1].block = 7 - i;      }                      z_verticalTopOppDataBuffer = new CHXBuffer();      z_verticalTopOppDataBuffer->AddRef();      z_verticalTopOppDataBuffer->Set((UCHAR*)&VerticalMatrixTransition, sizeof(UCHAR*));   }   else if (completeness == MATRIX_TRANSITION_DELETE)   {      delete *((MatrixTransitionData**)z_verticalTopOppDataBuffer->GetBuffer());      if (!z_verticalTopOppDataBuffer->Release())      {         z_verticalTopOppDataBuffer = NULL;         return HXCreateRegion();      }   }           return MatrixTransition(left,top,right,bottom,completeness,*((MatrixTransitionData**)z_verticalTopOppDataBuffer->GetBuffer()),lines);}HXREGION* VerticalStartBottomOppositeMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   HXREGION* retRGN = MirrorHorizontal(VerticalStartTopOppositeMatrix(left,top,right,bottom,completeness,lines),top + (bottom - top + 1) / 2);   if (lines)      MirrorHorizontal(lines,top + (bottom - top + 1) / 2);   return retRGN;}HXREGION* HorizontalStartLeftMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   static CHXBuffer* z_verticalTopOppDataBuffer = NULL;           if (!z_verticalTopOppDataBuffer || completeness == MATRIX_TRANSITION_INIT)   {      MatrixTransitionData* VerticalMatrixTransition = new MatrixTransitionData(1,8,4);      MatrixBlockTransitionList* blockTransList = VerticalMatrixTransition->GetTransactionListPtr();                      for (int i = 0; i < 4; ++i)      {         blockTransList[i].CreateList(2);         MatrixBlockTransition* list = blockTransList[i].GetListPtr();                                 list[0].invert = list[1].invert = i & 1;         list[0].transition = list[1].transition = EdgeWipe;         list[0].block = i;         list[1].block = 7 - i;      }                      z_verticalTopOppDataBuffer = new CHXBuffer();      z_verticalTopOppDataBuffer->AddRef();      z_verticalTopOppDataBuffer->Set((UCHAR*)&VerticalMatrixTransition, sizeof(UCHAR*));   }   else if (completeness == MATRIX_TRANSITION_DELETE)   {      delete *((MatrixTransitionData**)z_verticalTopOppDataBuffer->GetBuffer());      if (!z_verticalTopOppDataBuffer->Release())      {         z_verticalTopOppDataBuffer = NULL;         return HXCreateRegion();      }   }           return MatrixTransition(left,top,right,bottom,completeness,*((MatrixTransitionData**)z_verticalTopOppDataBuffer->GetBuffer()),lines);}HXREGION* HorizontalStartRightMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   HXREGION* retRGN = MirrorVertical(HorizontalStartLeftMatrix(left,top,right,bottom,completeness,lines),left + (right - left + 1) / 2);   if (lines)      MirrorVertical(lines,left + (right - left + 1) / 2);   return retRGN;}HXREGION* HorizontalStartLeftOppositeMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   static CHXBuffer* z_verticalTopOppDataBuffer = NULL;           if (!z_verticalTopOppDataBuffer || completeness == MATRIX_TRANSITION_INIT)   {      MatrixTransitionData* VerticalMatrixTransition = new MatrixTransitionData(1,8,4);      MatrixBlockTransitionList* blockTransList = VerticalMatrixTransition->GetTransactionListPtr();                      for (int i = 0; i < 4; ++i)      {         blockTransList[i].CreateList(2);         MatrixBlockTransition* list = blockTransList[i].GetListPtr();                                 list[0].invert = i & 1;         list[1].invert = !list[0].invert;         list[0].transition = list[1].transition = EdgeWipe;         list[0].block = i;         list[1].block = 7 - i;      }                      z_verticalTopOppDataBuffer = new CHXBuffer();      z_verticalTopOppDataBuffer->AddRef();      z_verticalTopOppDataBuffer->Set((UCHAR*)&VerticalMatrixTransition, sizeof(UCHAR*));   }   else if (completeness == MATRIX_TRANSITION_DELETE)   {      delete *((MatrixTransitionData**)z_verticalTopOppDataBuffer->GetBuffer());      if (!z_verticalTopOppDataBuffer->Release())      {         z_verticalTopOppDataBuffer = NULL;         return HXCreateRegion();      }   }           return MatrixTransition(left,top,right,bottom,completeness,*((MatrixTransitionData**)z_verticalTopOppDataBuffer->GetBuffer()),lines);}HXREGION* HorizontalStartRightOppositeMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   HXREGION* retRGN = MirrorVertical(HorizontalStartLeftOppositeMatrix(left,top,right,bottom,completeness,lines),left + (right - left + 1) / 2);   if (lines)      MirrorVertical(lines,left + (right - left + 1) / 2);   return retRGN;}HXREGION* DoubleSpiralTopMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   tranLines* tmpLines = NULL;   if (lines)      tmpLines = new tranLines;   int ii = (int)(((float)(left + right)) / 2.0 + .5)-1;   int jj = ii + 1;         HXREGION* retRGN = CounterClockwiseTopLeftMatrix(left, top, ii, bottom, completeness,lines);   HXREGION* rgn1 = ClockwiseTopRightMatrix(jj, top, right, bottom, completeness,tmpLines);   HXCombineRgn(retRGN, retRGN, rgn1, HX_RGN_XOR);   HXDestroyRegion(rgn1);   if (lines)      *lines += *tmpLines;           return retRGN;}HXREGION* DoubleSpiralBottomMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   HXREGION* retRGN = MirrorHorizontal(DoubleSpiralTopMatrix(left,top,right,bottom,completeness,lines),top + (bottom - top + 1) / 2);   if (lines)      MirrorHorizontal(lines,top + (bottom - top + 1) / 2);   return retRGN;}HXREGION* DoubleSpiralLeftMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   tranLines* tmpLines = NULL;   if (lines)      tmpLines = new tranLines;   HXREGION* retRGN = ClockwiseTopLeftMatrix(left, top, right, (top + bottom) / 2 + 1, completeness,lines);   HXREGION* rgn1 = CounterClockwiseBottomLeftMatrix(left, (top + bottom) / 2, right, bottom, completeness,tmpLines);   HXCombineRgn(retRGN, retRGN, rgn1, HX_RGN_OR);   HXDestroyRegion(rgn1);           if (lines)      *lines += *tmpLines;           return retRGN;}HXREGION* DoubleSpiralRightMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   HXREGION* retRGN = MirrorVertical(DoubleSpiralLeftMatrix(left,top,right,bottom,completeness,lines),left + (right - left + 1) / 2);   if (lines)      MirrorVertical(lines,left + (right - left + 1) / 2);   return retRGN;}HXREGION* QuadSpiralVerticalMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   tranLines* tmpLines = NULL;   if (lines)      tmpLines = new tranLines;   HXREGION* retRGN = DoubleSpiralTopMatrix(left, top, right, (top + bottom) / 2 + 1, completeness,lines);   HXREGION* rgn1 = DoubleSpiralBottomMatrix(left, (top + bottom) / 2 , right, bottom, completeness,tmpLines);   HXCombineRgn(retRGN, retRGN, rgn1, HX_RGN_OR);   HXDestroyRegion(rgn1);   if (lines)      *lines += *tmpLines;           return retRGN;}HXREGION* QuadSpiralHorizontalMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   tranLines* tmpLines = NULL;   if (lines)      tmpLines = new tranLines;   HXREGION* retRGN = DoubleSpiralLeftMatrix(left, top, (left + right) / 2, bottom, completeness,lines);   HXREGION* rgn1 = DoubleSpiralRightMatrix((left + right) / 2 + 1, top, right, bottom, completeness,tmpLines);   HXCombineRgn(retRGN, retRGN, rgn1, HX_RGN_XOR);   HXDestroyRegion(rgn1);   if (lines)      *lines += *tmpLines;           return retRGN;}HXREGION* VerticalWaterfallLeftMatrix(int left, int top, int right, int bottom, int completeness, tranLines* lines){   static CHXBuffer* z_waterfallLeftDataBuffer = NULL;           if (!z_waterfallLeftDataBuffer || completeness == MATRIX_TRANSITION_INIT)   {      MatrixTransitionData* VerticalMatrixTransition = new MatrixTransitionData(8,4,11);      MatrixBlockTransitionList* blockTransList = VerticalMatrixTransition->GetTransactionListPtr();                      int blockCount;      int start = 0;                      for (int i = 0; i < 11; ++i)      {         blockCount = 6 - abs(i - 5);         if (blockCount > 4) blockCount = 4;                                 blockTransList[i].CreateList(blockCount);         MatrixBlockTransition* list = blockTransList[i].GetListPtr();                                 for (int j = 0; j < blockCount; ++j)         {            list[j].block = start - j * 7;            list[j].invert = 0;            list[j].transition = SlideVerticalEdgeWipe;         }         start = (i >= 3) ? start + 1 : start + 8;      }                      z_waterfallLeftDataBuffer = new CHXBuffer();      z_waterfallLeftDataBuffer->AddRef();      z_waterfallLeftDataBuffer->Set((UCHAR*)&VerticalMatrixTransition, sizeof(UCHAR*));   }   else if (completeness == MATRIX_TRANSITION_DELETE)   {      delete *((MatrixTransitionData**)z_waterfallLeftDataBuffer->GetBuffer());      if (!z_waterfallLeftDa

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -