Text archives Help
- From: bigler@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [Manta] r1798 - trunk/Image
- Date: Thu, 1 Nov 2007 18:02:35 -0600 (MDT)
Author: bigler
Date: Thu Nov 1 18:02:35 2007
New Revision: 1798
Modified:
trunk/Image/SimpleImage.h
Log:
Image/SimpleImage.h
Added splatting for default image type. This really only helps
rgbfloat as most other things have specializations. I'll get to
those soon.
Modified: trunk/Image/SimpleImage.h
==============================================================================
--- trunk/Image/SimpleImage.h (original)
+++ trunk/Image/SimpleImage.h Thu Nov 1 18:02:35 2007
@@ -112,7 +112,28 @@
template<class Pixel>
void SimpleImage<Pixel>::set(const Fragment& fragment)
{
- if(fragment.getFlag(Fragment::ConsecutiveX|Fragment::ConstantEye)){
+ if(fragment.xPixelSize != 1 || fragment.yPixelSize != 1){
+ // NOTE(boulos): This branch tries to copy fragments where a
+ // single sample splats onto several pixels
+ for(int i=fragment.begin();i<fragment.end();i++){
+ Pixel pix;
+ convertToPixel(pix, fragment.getColor(i).convertRGB());
+
+ // start splatting
+ int y_index = fragment.getY(i);
+ int last_x = std::min(xres - fragment.getX(i), fragment.xPixelSize);
+ for(int y=0;y<fragment.yPixelSize;y++){
+
+ if (y_index >= yres) break;
+
+ Pixel* row = eyeStart[fragment.getWhichEye(i)][y_index];
+ for(int x=0;x<last_x;x++)
+ row[fragment.getX(i) + x] = pix;
+
+ y_index++;
+ }
+ }
+ } else
if(fragment.getFlag(Fragment::ConsecutiveX|Fragment::ConstantEye)){
int b = fragment.begin();
Pixel* pix =
eyeStart[fragment.getWhichEye(b)][fragment.getY(b)]+fragment.getX(b);
for(int i=fragment.begin(); i< fragment.end();i++)
- [Manta] r1798 - trunk/Image, bigler, 11/01/2007
Archive powered by MHonArc 2.6.16.