示例#1
0
        /*
        ==============
        D_DrawSolidSurface
        ==============
        */
        // FIXME: clean this up
        static void D_DrawSolidSurface(render.surf_t surf, int color)
        {
            render.espan_t  span;
            int             pdest;
            int             u, u2, pix;

            pix = (color << 24) | (color << 16) | (color << 8) | color;
            for (span = surf.spans; span != null; span = span.pnext)
            {
                pdest = screenwidth * span.v;
                u = span.u;
                u2 = span.u + span.count - 1;

                d_viewbuffer[pdest + u] = (byte)pix;

                if (u2 - u < 8)
                {
                    for (u++; u <= u2; u++)
                        d_viewbuffer[pdest + u] = (byte)pix;
                }
                else
                {
                    for (u++; (u & 3) != 0; u++)
                        d_viewbuffer[pdest + u] = (byte)pix;

                    u2 -= 4;
                    for (; u <= u2; u += 4)
                    {
                        d_viewbuffer[pdest + u] = (byte)(pix >> 24);
                        d_viewbuffer[pdest + u + 1] = (byte)(pix >> 16);
                        d_viewbuffer[pdest + u + 2] = (byte)(pix >> 8);
                        d_viewbuffer[pdest + u + 3] = (byte)pix;
                    }
                    u2 += 4;
                    for (; u <= u2; u++)
                        d_viewbuffer[pdest + u] = (byte)pix;
                }
            }
        }
示例#2
0
        /*
        ==================
        CL_ParseBaseline
        ==================
        */
        static void CL_ParseBaseline(render.entity_t ent)
        {
            int i;

            ent.baseline.modelindex = common.MSG_ReadByte ();
            ent.baseline.frame = common.MSG_ReadByte();
            ent.baseline.colormap = common.MSG_ReadByte();
            ent.baseline.skin = common.MSG_ReadByte();
            for (i=0 ; i<3 ; i++)
            {
                ent.baseline.origin[i] = common.MSG_ReadCoord();
                ent.baseline.angles[i] = common.MSG_ReadAngle();
            }
        }