Lines Matching refs:pixel
245 // load the framebuffer pixel
253 pixel_t pixel;
258 pixel = directTex ? parts.texel[directTex-1] : parts.iterated;
259 pixel.flags &= ~CORRUPTIBLE;
271 // allocate a register for the resulting pixel
272 pixel.setTo(regs.obtain(), &mCbFormat, FIRST);
274 build_component(pixel, parts, GGLFormat::ALPHA, regs);
282 build_component(pixel, parts, GGLFormat::RED, regs);
283 build_component(pixel, parts, GGLFormat::GREEN, regs);
284 build_component(pixel, parts, GGLFormat::BLUE, regs);
286 pixel.flags |= CORRUPTIBLE;
292 if (pixel.reg == -1) {
295 pixel = mDstPixel;
300 build_logic_op(pixel, regs);
303 build_masking(pixel, regs);
306 store(parts.cbPtr, pixel, WRITE_BACK);
455 void GGLAssembler::build_component( pixel_t& pixel,
465 const int dst_component_size = pixel.component_size(component);
476 // downshift component and rebuild pixel...
477 downshift(pixel, component, temp, parts.dither);
815 void GGLAssembler::build_logic_op(pixel_t& pixel, Scratch& regs)
824 pixel_t s(pixel);
825 if (!(pixel.flags & CORRUPTIBLE)) {
826 pixel.reg = regs.obtain();
827 pixel.flags |= CORRUPTIBLE;
832 case GGL_CLEAR: MOV(AL, 0, pixel.reg, imm(0)); break;
833 case GGL_AND: AND(AL, 0, pixel.reg, s.reg, d.reg); break;
834 case GGL_AND_REVERSE: BIC(AL, 0, pixel.reg, s.reg, d.reg); break;
836 case GGL_AND_INVERTED: BIC(AL, 0, pixel.reg, d.reg, s.reg); break;
837 case GGL_NOOP: MOV(AL, 0, pixel.reg, d.reg); break;
838 case GGL_XOR: EOR(AL, 0, pixel.reg, s.reg, d.reg); break;
839 case GGL_OR: ORR(AL, 0, pixel.reg, s.reg, d.reg); break;
840 case GGL_NOR: ORR(AL, 0, pixel.reg, s.reg, d.reg);
841 MVN(AL, 0, pixel.reg, pixel.reg); break;
842 case GGL_EQUIV: EOR(AL, 0, pixel.reg, s.reg, d.reg);
843 MVN(AL, 0, pixel.reg, pixel.reg); break;
844 case GGL_INVERT: MVN(AL, 0, pixel.reg, d.reg); break;
846 BIC(AL, 0, pixel.reg, d.reg, s.reg);
847 MVN(AL, 0, pixel.reg, pixel.reg); break;
848 case GGL_COPY_INVERTED: MVN(AL, 0, pixel.reg, s.reg); break;
850 BIC(AL, 0, pixel.reg, s.reg, d.reg);
851 MVN(AL, 0, pixel.reg, pixel.reg); break;
852 case GGL_NAND: AND(AL, 0, pixel.reg, s.reg, d.reg);
853 MVN(AL, 0, pixel.reg, pixel.reg); break;
854 case GGL_SET: MVN(AL, 0, pixel.reg, imm(0)); break;
931 void GGLAssembler::build_masking(pixel_t& pixel, Scratch& regs)
940 pixel_t s(pixel);
941 if (!(pixel.flags & CORRUPTIBLE)) {
942 pixel.reg = regs.obtain();
943 pixel.flags |= CORRUPTIBLE;
965 build_and_immediate(pixel.reg, s.reg, mask, fb.size());
966 s = pixel;
976 if (s.reg == pixel.reg) {
979 MOV(AL, 0, pixel.reg, fb.reg);
982 ORR(AL, 0, pixel.reg, s.reg, fb.reg);