ENUM_PTRS_END static RELOC_PTRS_WITH(function_Sd_reloc_ptrs, gs_function_Sd_t *pfn) { RELOC_PREFIX(st_function); RELOC_USING(st_data_source, &pfn->params.DataSource, sizeof(pfn->params.DataSource)); RELOC_PTR3(gs_function_Sd_t, params.Encode, params.Decode, params.Size); RELOC_PTR3(gs_function_Sd_t, params.pole, params.array_step, params.stream_step); }
ENUM_PTRS_END static RELOC_PTRS_WITH(device_mask_clip_reloc_ptrs, gx_device_mask_clip *mcdev) { RELOC_PREFIX(st_device_forward); RELOC_USING(st_gx_strip_bitmap, &mcdev->tiles, sizeof(mcdev->tiles)); RELOC_USING(st_device_memory, &mcdev->mdev, sizeof(mcdev->mdev)); if (mcdev->mdev.base != 0) { /* * Update the line pointers specially, since they point into the * buffer that is part of the mask clipping device itself. */ long diff = (char *)RELOC_OBJ(mcdev) - (char *)mcdev; int i; for (i = 0; i < mcdev->mdev.height; ++i) mcdev->mdev.line_ptrs[i] += diff; mcdev->mdev.base = mcdev->mdev.line_ptrs[0]; mcdev->mdev.line_ptrs = (void *)((char *)(mcdev->mdev.line_ptrs) + diff); } }
} ENUM_PTRS_END static RELOC_PTRS_BEGIN(device_rop_texture_reloc_ptrs) { RELOC_PREFIX(st_device_forward); RELOC_SUPER(gx_device_rop_texture, st_device_color, texture); } RELOC_PTRS_END
ENUM_PTRS_END static RELOC_PTRS_BEGIN(pattern2_instance_reloc_ptrs) { RELOC_PREFIX(st_pattern_instance); RELOC_SUPER(gs_pattern2_instance_t, st_pattern2_template, templat); } RELOC_PTRS_END