public void cls() // clears the texture { MathUtility.clearBuffer(pixel, 0); }
public void render(Camera cam) { // Resize if requested if (resizingRequested) { performResizing(); } if (antialiasChangeRequested) { performAntialiasChange(); } rasterizer.rebuildReferences(this); // Clear buffers MathUtility.clearBuffer(zBuffer, zFar); if (useIdBuffer) { MathUtility.clearBuffer(idBuffer, uint.MaxValue); } if (scene.environment.background != null) { screen.drawBackground(scene.environment.background, 0, 0, screen.w, screen.h); } else { screen.clear(scene.environment.bgcolor); } // Prepare cam.setScreensize(screen.w, screen.h); scene.prepareForRendering(); emptyQueues(); // Project var m = Matrix.multiply(cam.getMatrix(), scene.matrix); var nm = Matrix.multiply(cam.getNormalMatrix(), scene.normalmatrix); Matrix vertexProjection, normalProjection; SceneObject obj; Triangle t; Vertex v; var w = screen.w; var h = screen.h; for (uint id = 0, length = scene.objects; id < length; id++) { obj = scene._object[id]; if (!obj.visible) { continue; } vertexProjection = obj.matrix.Clone(); normalProjection = obj.normalmatrix.Clone(); vertexProjection.transform(m); normalProjection.transform(nm); for (int i = 0, innerlength = obj.numVertices; i < innerlength; i++) { v = obj.vertices[i]; v.Project(vertexProjection, normalProjection, cam); v.clipFrustrum(w, h); } for (uint i = 0, innerlength = obj.numTriangles; i < innerlength; i++) { t = obj.triangles[i]; t.Project(normalProjection); t.ClipFrustrum(w, h); enqueueTriangle(t); } } var tri = getOpaqueQueue(); if (tri != null) { var triLength = tri.Length; for (var i = triLength - 1; i >= 0; i--) { rasterizer.loadMaterial(tri[i].getParent().material); rasterizer.Render(tri[i]); } } tri = getTransparentQueue(); if (tri != null) { var triLength = tri.Length; for (var i = 0; i < triLength; i++) { rasterizer.loadMaterial(tri[i].getParent().material); rasterizer.Render(tri[i]); } } screen.render(); }
public void clear(uint bgcolor) { MathUtility.clearBuffer(p, bgcolor); }