public CCMotionStreak(float fade, float minSegIn, float strokeIn, CCColor3B color, CCTexture2D texture) { streakRenderCommand = new CCCustomCommand(RenderMotionStreak); AnchorPoint = CCPoint.Zero; IgnoreAnchorPointForPosition = true; StartingPositionInitialized = false; FastMode = true; Texture = texture; Color = color; stroke = strokeIn; BlendFunc = CCBlendFunc.NonPremultiplied; minSeg = (minSegIn == -1.0f) ? stroke / 5.0f : minSegIn; minSeg *= minSeg; fadeDelta = 1.0f / fade; maxPoints = (int) (fade * 60.0f) + 2; pointState = new float[maxPoints]; pointVertexes = new CCPoint[maxPoints]; vertices = new CCV3F_C4B_T2F[(maxPoints + 1) * 2]; Schedule(); }
public CCMotionStreak(float fade, float minSegIn, float strokeIn, CCColor3B color, CCTexture2D texture) { streakRenderCommand = new CCCustomCommand(RenderMotionStreak); AnchorPoint = CCPoint.Zero; IgnoreAnchorPointForPosition = true; StartingPositionInitialized = false; FastMode = true; Texture = texture; Color = color; stroke = strokeIn; BlendFunc = CCBlendFunc.NonPremultiplied; minSeg = (minSegIn == -1.0f) ? stroke / 5.0f : minSegIn; minSeg *= minSeg; fadeDelta = 1.0f / fade; maxPoints = (int)(fade * 60.0f) + 2; pointState = new float[maxPoints]; pointVertexes = new CCPoint[maxPoints]; vertices = new CCV3F_C4B_T2F[(maxPoints + 1) * 2]; Schedule(); }
public CCLayer(CCCameraProjection cameraProjection, CCClipMode clipMode = CCClipMode.None) : base() { beforeDrawCommand = new CCCustomCommand(BeforeDraw); afterDrawCommand = new CCCustomCommand(AfterDraw); ChildClippingMode = clipMode; IgnoreAnchorPointForPosition = true; AnchorPoint = CCPoint.AnchorMiddle; initCameraProjection = cameraProjection; }
public void AddCommand(CCRenderCommand command) { // Render command might be used multiple times per draw loop // e.g. within render texture if(currentGroupId != 0) command = command.Copy(); command.Group = currentGroupId; command.ViewportGroup = currentViewportGroupId; command.LayerGroup = currentLayerGroupId; command.ArrivalIndex = ++currentArrivalIndex; command.UsingDepthTest = UsingDepthTest; renderQueue.Push(command); }
public void AddCommand(CCRenderCommand command) { // Render command might be used multiple times per draw loop // e.g. within render texture if (currentGroupId != 0) { command = command.Copy(); } command.Group = currentGroupId; command.ViewportGroup = currentViewportGroupId; command.LayerGroup = currentLayerGroupId; command.ArrivalIndex = ++currentArrivalIndex; command.UsingDepthTest = UsingDepthTest; renderQueue.Push(command); }
void ExecuteRenderCommand(CCRenderCommand command) { if (command is CCQuadCommand) { Flush3D(); FlushTriangles(); //Console.WriteLine(((CCQuadCommand)command).QuadCount); var quadCommand = (CCQuadCommand)command; var drawManager = DrawManager; //Draw batched quads if necessary // TODO: Check for buffer size if (command.IsSkipBatching) // || (numberQuads + cmd->getQuadCount()) * 4 > VBO_SIZE ) { // TODO: Check for buffer size //CCASSERT(cmd->getQuadCount()>= 0 && cmd->getQuadCount() * 4 < VBO_SIZE, "VBO for vertex is not big enough, please break the data down or use customized render command"); //Draw batched quads if VBO is full DrawBatchedQuads(); } var mv = command.ModelViewTransform; batchQuadCommands.Add(quadCommand); for (int b = 0; b < quadCommand.QuadCount; b++) { quads.Add(mv.Transform(quadCommand.Quads[b])); } numberQuads += quadCommand.QuadCount; if (quadCommand.IsSkipBatching) { DrawBatchedQuads(); } } else { Flush(); command.Execute(DrawManager); } }
public void AddComand(CCRenderCommand command) { var renderQueueId = new CCRenderQueueId(Group, 0, (int)command.Depth, command.MaterialId); RenderQueue.Enqueue(renderQueueId, command); }
public void AddComand (CCRenderCommand command) { var renderQueueId = new CCRenderQueueId(Group, 0, (int)command.Depth, command.MaterialId); RenderQueue.Enqueue(renderQueueId, command); }
void ExecuteRenderCommand (CCRenderCommand command) { if (command is CCQuadCommand) { Flush3D(); FlushTriangles(); //Console.WriteLine(((CCQuadCommand)command).QuadCount); var quadCommand = (CCQuadCommand)command; var drawManager = DrawManager; //Draw batched quads if necessary // TODO: Check for buffer size if(command.IsSkipBatching) // || (numberQuads + cmd->getQuadCount()) * 4 > VBO_SIZE ) { // TODO: Check for buffer size //CCASSERT(cmd->getQuadCount()>= 0 && cmd->getQuadCount() * 4 < VBO_SIZE, "VBO for vertex is not big enough, please break the data down or use customized render command"); //Draw batched quads if VBO is full DrawBatchedQuads(); } var mv = command.ModelViewTransform; batchQuadCommands.Add(quadCommand); for (int b = 0; b < quadCommand.QuadCount; b++) { quads.Add(mv.Transform(quadCommand.Quads[b])); } numberQuads += quadCommand.QuadCount; if (quadCommand.IsSkipBatching) { DrawBatchedQuads(); } } else { Flush(); command.Execute(DrawManager); } }