コード例 #1
0
/*
=======================================
    生成 DX8 图形离屏表面
=======================================
*/
CR_API iGFX2_DX8S*
create_dx8_bitmap (
  __CR_IN__ iGFX2_DX8M* device,
  __CR_IN__ sD3D8_TEXR* texture,
  __CR_IN__ bool_t      dynamic
    )
{
    iGFX2_DX8S* rett;

    /* 必须是 2D 贴图 */
    if (texture->face != 1)
        return (NULL);

    /* 生成对象并设置图片参数 */
    rett = struct_new(iGFX2_DX8S);
    if (rett == NULL)
        return (NULL);
    if (!image_set(&rett->__back__, NULL, (leng_t)(-1L), 0, 0,
                texture->info.Width, texture->info.Height,
                image_d3d_to_crh(texture->info.Format), FALSE, 8)) {
        rect_set_wh(&rett->__back__.clip_win, 0, 0,
                    texture->info.Width, texture->info.Height);
        struct_cpy(&rett->__back__.position, &rett->__back__.clip_win, sRECT);
    }

    /* 返回生成的对象 */
    rett->__vptr__ = &s_bitmap_vtbl;
    rett->m_flags = dynamic ? D3DLOCK_DISCARD : 0;
    rett->m_device = device;
    rett->m_texture = texture;
    return (rett);
}
コード例 #2
0
ファイル: image.c プロジェクト: Drooids/Corange
void image_map(image* i, vec4(*f)(vec4)) {
  for (int x = 0; x < i->width; x++)
  for (int y = 0; y < i->height; y++) {
    image_set(i, x, y, f(image_get(i, x, y)));
  }
}