1 |
|
/* |
2 |
|
* video_defs.h - MacOS types and structures for video |
3 |
|
* |
4 |
< |
* SheepShaver (C) 1997-2004 Marc Hellwig and Christian Bauer |
4 |
> |
* SheepShaver (C) 1997-2008 Marc Hellwig and Christian Bauer |
5 |
|
* |
6 |
|
* This program is free software; you can redistribute it and/or modify |
7 |
|
* it under the terms of the GNU General Public License as published by |
22 |
|
#define VIDEO_DEFS_H |
23 |
|
|
24 |
|
#include "macos_util.h" |
25 |
+ |
#include <stddef.h> |
26 |
|
|
27 |
|
|
28 |
|
/* |
216 |
|
csCount = 6 |
217 |
|
}; |
218 |
|
|
219 |
+ |
enum { // VDGammaRecord |
220 |
+ |
csGTable = 0 |
221 |
+ |
}; |
222 |
+ |
|
223 |
|
enum { // ColorSpec table entry |
224 |
|
csValue = 0, |
225 |
|
csRed = 2, |
285 |
|
csCursorSet = 12 |
286 |
|
}; |
287 |
|
|
288 |
< |
struct GammaTbl { |
289 |
< |
uint16 gVersion; |
290 |
< |
uint16 gType; |
291 |
< |
uint16 gFormulaSize; |
292 |
< |
uint16 gChanCnt; |
293 |
< |
uint16 gDataCnt; |
294 |
< |
uint16 gDataWidth; |
295 |
< |
uint16 gFormulaData[1]; |
288 |
> |
enum { // struct GammaTbl |
289 |
> |
gVersion = 0, |
290 |
> |
gType = 2, |
291 |
> |
gFormulaSize = 4, |
292 |
> |
gChanCnt = 6, |
293 |
> |
gDataCnt = 8, |
294 |
> |
gDataWidth = 10, |
295 |
> |
gFormulaData = 12, // variable size |
296 |
> |
SIZEOF_GammaTbl = 12 |
297 |
|
}; |
298 |
|
|
299 |
|
enum { |
313 |
|
* Structures for graphics acceleration |
314 |
|
*/ |
315 |
|
|
316 |
< |
typedef void *CTabHandle; |
316 |
> |
typedef uint32 CTabHandle; |
317 |
|
|
318 |
|
// Parameter block passed to acceleration hooks |
319 |
|
struct accl_params { |
330 |
|
uint32 unknown2[3]; |
331 |
|
|
332 |
|
uint32 src_base_addr; |
333 |
< |
uint32 src_row_bytes; |
333 |
> |
int32 src_row_bytes; |
334 |
|
int16 src_bounds[4]; |
335 |
|
uint32 src_unknown1; |
336 |
|
uint32 src_pixel_type; |
343 |
|
uint32 src_unknown4; |
344 |
|
|
345 |
|
uint32 dest_base_addr; |
346 |
< |
uint32 dest_row_bytes; |
346 |
> |
int32 dest_row_bytes; |
347 |
|
int16 dest_bounds[4]; |
348 |
|
uint32 dest_unknown1; |
349 |
|
uint32 dest_pixel_type; |
362 |
|
|
363 |
|
uint32 unknown4[38]; |
364 |
|
|
365 |
< |
void (*draw_proc)(accl_params *); |
365 |
> |
uint32 draw_proc; |
366 |
|
// Argument for accl_sync_hook at offset 0x4f8 |
367 |
|
}; |
368 |
|
|
369 |
+ |
enum { |
370 |
+ |
acclTransferMode = offsetof(accl_params, transfer_mode), |
371 |
+ |
acclPenMode = offsetof(accl_params, pen_mode), |
372 |
+ |
acclForePen = offsetof(accl_params, fore_pen), |
373 |
+ |
acclBackPen = offsetof(accl_params, back_pen), |
374 |
+ |
acclSrcBaseAddr = offsetof(accl_params, src_base_addr), |
375 |
+ |
acclSrcRowBytes = offsetof(accl_params, src_row_bytes), |
376 |
+ |
acclSrcBoundsRect = offsetof(accl_params, src_bounds), |
377 |
+ |
acclSrcPixelType = offsetof(accl_params, src_pixel_type), |
378 |
+ |
acclSrcPixelSize = offsetof(accl_params, src_pixel_size), |
379 |
+ |
acclSrcCmpCount = offsetof(accl_params, src_cmp_count), |
380 |
+ |
acclSrcCmpSize = offsetof(accl_params, src_cmp_size), |
381 |
+ |
acclSrcPMTable = offsetof(accl_params, src_pm_table), |
382 |
+ |
acclDestBaseAddr = offsetof(accl_params, dest_base_addr), |
383 |
+ |
acclDestRowBytes = offsetof(accl_params, dest_row_bytes), |
384 |
+ |
acclDestBoundsRect = offsetof(accl_params, dest_bounds), |
385 |
+ |
acclDestPixelType = offsetof(accl_params, dest_pixel_type), |
386 |
+ |
acclDestPixelSize = offsetof(accl_params, dest_pixel_size), |
387 |
+ |
acclDestCmpCount = offsetof(accl_params, dest_cmp_count), |
388 |
+ |
acclDestCmpSize = offsetof(accl_params, dest_cmp_size), |
389 |
+ |
acclDestPMTable = offsetof(accl_params, dest_pm_table), |
390 |
+ |
acclSrcRect = offsetof(accl_params, src_rect), |
391 |
+ |
acclDestRect = offsetof(accl_params, dest_rect), |
392 |
+ |
acclDrawProc = offsetof(accl_params, draw_proc) |
393 |
+ |
}; |
394 |
+ |
|
395 |
|
// Hook info for NQDMisc |
396 |
|
struct accl_hook_info { |
397 |
< |
bool (*draw_func)(accl_params *); |
398 |
< |
bool (*sync_func)(void *); |
397 |
> |
uint32 draw_func; |
398 |
> |
uint32 sync_func; |
399 |
|
uint32 code; |
400 |
|
}; |
401 |
|
|