Lines Matching +full:offset +full:- +full:y
1 /*-
2 * SPDX-License-Identifier: BSD-3-Clause
4 * Copyright (c) 1991-1997 Søren Schmidt
36 #define min(x, y) (((x) < (y)) ? (x) : (y)) argument
45 WriteVerticalLine(VGLBitmap *dst, int x, int y, int width, byte *line) in WriteVerticalLine() argument
47 int bwidth, i, pos, last, planepos, start_offset, end_offset, offset; in WriteVerticalLine() local
53 switch (dst->Type) { in WriteVerticalLine()
67 last = 8 - start_offset; in WriteVerticalLine()
79 planepos--; in WriteVerticalLine()
81 word <<= (8 - end_offset); in WriteVerticalLine()
94 pos = VGLAdpInfo.va_line_width*y + x/8; in WriteVerticalLine()
95 if (dst->Type == VIDBUF4) { in WriteVerticalLine()
97 VGLPlane[i][planepos] |= dst->Bitmap[pos+planepos] & mask[end_offset]; in WriteVerticalLine()
99 VGLPlane[i][0] |= dst->Bitmap[pos] & ~mask[start_offset]; in WriteVerticalLine()
100 bcopy(&VGLPlane[i][0], dst->Bitmap + pos, bwidth); in WriteVerticalLine()
103 offset = VGLSetSegment(pos + planepos); in WriteVerticalLine()
104 VGLPlane[i][planepos] |= dst->Bitmap[offset] & mask[end_offset]; in WriteVerticalLine()
106 offset = VGLSetSegment(pos); in WriteVerticalLine()
108 VGLPlane[i][0] |= dst->Bitmap[offset] & ~mask[start_offset]; in WriteVerticalLine()
110 len = min(VGLAdpInfo.va_window_size - offset, last); in WriteVerticalLine()
111 bcopy(&VGLPlane[i][bwidth - last], dst->Bitmap + offset, len); in WriteVerticalLine()
113 last -= len; in WriteVerticalLine()
116 offset = VGLSetSegment(pos); in WriteVerticalLine()
122 address = dst->Bitmap + VGLAdpInfo.va_line_width * y + x/4; in WriteVerticalLine()
136 width = width * dst->PixelBytes; in WriteVerticalLine()
137 pos = (dst->VXsize * y + x) * dst->PixelBytes; in WriteVerticalLine()
139 offset = VGLSetSegment(pos); in WriteVerticalLine()
140 i = min(VGLAdpInfo.va_window_size - offset, width); in WriteVerticalLine()
141 bcopy(line, dst->Bitmap + offset, i); in WriteVerticalLine()
144 width -= i; in WriteVerticalLine()
152 address = dst->Bitmap + (dst->VXsize * y + x) * dst->PixelBytes; in WriteVerticalLine()
153 bcopy(line, address, width * dst->PixelBytes); in WriteVerticalLine()
169 hight = -hight; in __VGLBitmapCopy()
173 buffer = alloca(width*src->PixelBytes); in __VGLBitmapCopy()
175 if (srcx>src->VXsize || srcy>src->VYsize in __VGLBitmapCopy()
176 || dstx>dst->VXsize || dsty>dst->VYsize) in __VGLBitmapCopy()
177 return -1; in __VGLBitmapCopy()
179 width=width+srcx; dstx-=srcx; srcx=0; in __VGLBitmapCopy()
182 hight=hight+srcy; dsty-=srcy; srcy=0; in __VGLBitmapCopy()
185 width=width+dstx; srcx-=dstx; dstx=0; in __VGLBitmapCopy()
188 hight=hight+dsty; srcy-=dsty; dsty=0; in __VGLBitmapCopy()
190 if (srcx+width > src->VXsize) in __VGLBitmapCopy()
191 width=src->VXsize-srcx; in __VGLBitmapCopy()
192 if (srcy+hight > src->VYsize) in __VGLBitmapCopy()
193 hight=src->VYsize-srcy; in __VGLBitmapCopy()
194 if (dstx+width > dst->VXsize) in __VGLBitmapCopy()
195 width=dst->VXsize-dstx; in __VGLBitmapCopy()
196 if (dsty+hight > dst->VYsize) in __VGLBitmapCopy()
197 hight=dst->VYsize-dsty; in __VGLBitmapCopy()
199 return -1; in __VGLBitmapCopy()
203 if (src->Bitmap == dst->Bitmap && srcy < dsty) { in __VGLBitmapCopy()
204 yend = srcy - 1; in __VGLBitmapCopy()
205 yextra = hight - 1; in __VGLBitmapCopy()
206 ystep = -1; in __VGLBitmapCopy()
210 p = src->Bitmap+(srcline*src->VXsize+srcx)*dst->PixelBytes; in __VGLBitmapCopy()
212 bcopy(p, buffer, width*src->PixelBytes); in __VGLBitmapCopy()
228 return -1; in VGLBitmapCopy()
231 if (src->Type != MEMBUF) in VGLBitmapCopy()
232 return -1; /* invalid */ in VGLBitmapCopy()
243 } else if (dst->Type != MEMBUF) in VGLBitmapCopy()
244 return -1; /* invalid */ in VGLBitmapCopy()
245 error = __VGLBitmapCopy(src, srcx, srcy, dst, dstx, dsty, width, -hight); in VGLBitmapCopy()
263 object->Type = type; in VGLBitmapCreate()
264 object->Xsize = xsize; in VGLBitmapCreate()
265 object->Ysize = ysize; in VGLBitmapCreate()
266 object->VXsize = xsize; in VGLBitmapCreate()
267 object->VYsize = ysize; in VGLBitmapCreate()
268 object->Xorigin = 0; in VGLBitmapCreate()
269 object->Yorigin = 0; in VGLBitmapCreate()
270 object->Bitmap = bits; in VGLBitmapCreate()
271 object->PixelBytes = VGLDisplay->PixelBytes; in VGLBitmapCreate()
278 if (object->Bitmap) in VGLBitmapDestroy()
279 free(object->Bitmap); in VGLBitmapDestroy()
286 object->Bitmap = malloc(object->VXsize*object->VYsize*object->PixelBytes); in VGLBitmapAllocateBits()
287 if (object->Bitmap == NULL) in VGLBitmapAllocateBits()
288 return -1; in VGLBitmapAllocateBits()
298 size = src->VXsize * src->VYsize; in VGLBitmapCvt()
299 srcpb = src->PixelBytes; in VGLBitmapCvt()
302 pb = dst->PixelBytes; in VGLBitmapCvt()
304 bcopy(src->Bitmap, dst->Bitmap, size * pb); in VGLBitmapCvt()
310 color = VGLrgb332ToNative(src->Bitmap[srcpos]); in VGLBitmapCvt()
312 dst->Bitmap[dstpos++] = color; in VGLBitmapCvt()