Bagikan melalui


Struktur DDLOCKOUT (ddkmapi.h)

Struktur DDLOCKOUT berisi deskripsi permukaan.

Sintaks

typedef struct _DDLOCKOUT {
  DWORD ddRVal;
  DWORD dwSurfHeight;
  DWORD dwSurfWidth;
  LONG  lSurfPitch;
  PVOID lpSurface;
  DWORD SurfaceCaps;
  DWORD dwFormatFlags;
  DWORD dwFormatFourCC;
  DWORD dwFormatBitCount;
  union {
    DWORD dwRBitMask;
    DWORD dwYBitMask;
  };
  union {
    DWORD dwGBitMask;
    DWORD dwUBitMask;
  };
  union {
    DWORD dwBBitMask;
    DWORD dwVBitMask;
  };
} DDLOCKOUT, *LPDDLOCKOUT;

Anggota

ddRVal

Menentukan lokasi di mana Microsoft DirectDraw menulis nilai pengembalian fungsi DxApi untuk operasi DD_DXAPI_LOCK . Kode pengembalian DD_OK menunjukkan keberhasilan.

dwSurfHeight

dwSurfWidth

Tentukan dimensi permukaan, dalam piksel.

lSurfPitch

Menentukan jarak, dalam byte, ke awal baris berikutnya.

lpSurface

Menunjuk ke memori permukaan.

SurfaceCaps

Menunjukkan sekumpulan bendera yang menentukan kemampuan permukaan. Anggota ini dapat diatur ke satu atau beberapa bendera berikut:

Bendera Makna
DDSCAPS_3DDEVICE Permukaan ini dapat digunakan untuk penyajian 3D. Aplikasi dapat menggunakan bendera ini untuk memastikan bahwa perangkat yang hanya dapat dirender ke timbunan tertentu memiliki permukaan di luar layar yang dialokasikan dari tumpukan yang benar. Jika bendera ini diatur untuk timbunan, permukaan tidak dialokasikan dari timbunan tersebut.
DDSCAPS_ALLOCONLOAD Memori untuk permukaan tidak dialokasikan sampai permukaan dimuat oleh aplikasi menggunakan metode IDirect3DDevice7::Load .
DDSCAPS_ALPHA Permukaan ini berisi informasi alfa. Format piksel harus dikueri untuk menentukan apakah permukaan ini hanya berisi informasi alfa atau informasi alfa yang diselingi dengan data warna piksel (seperti RGBA atau YUVA).
DDSCAPS_BACKBUFFER Permukaan ini adalah buffer belakang struktur pembalik permukaan. Biasanya, kemampuan ini diatur oleh metode CreateSurface aplikasi saat bendera DDSCAPS_FLIP digunakan. Hanya permukaan yang segera mendahului permukaan DDSCAPS_FRONTBUFFER yang memiliki set kemampuan ini. Permukaan lainnya diidentifikasi sebagai buffer belakang dengan adanya bendera DDSCAPS_FLIP, urutan lampirannya, dan tidak adanya kemampuan DDSCAPS_FRONTBUFFER dan DDSCAPS_BACKBUFFER. Jika kemampuan ini dikirim ke metode CreateSurface aplikasi, buffer belakang yang berdiri sendiri sedang dibuat. Setelah metode ini dipanggil, permukaan ini dapat dilampirkan ke buffer depan, buffer belakang lain, atau keduanya untuk membentuk struktur permukaan membalik. Untuk informasi selengkapnya, lihat metode AddAttachedSurface dalam dokumentasi DirectX SDK. DirectDraw mendukung jumlah permukaan sewenang-wenang dalam struktur membalik.
DDSCAPS_COMPLEX Permukaan yang kompleks sedang dijelaskan. Permukaan yang kompleks menghasilkan pembuatan lebih dari satu permukaan. Permukaan tambahan melekat pada permukaan akar. Struktur kompleks hanya dapat dihancurkan dengan menghancurkan akarnya.
DDSCAPS_FLIP Permukaan ini adalah bagian dari struktur membalik permukaan. Ketika kemampuan ini diteruskan ke metode CreateSurface aplikasi, buffer depan dan satu atau beberapa buffer belakang dibuat. DirectDraw mengatur bit DDSCAPS_FRONTBUFFER pada permukaan buffer depan dan bit DDSCAPS_BACKBUFFER pada permukaan yang berdekatan dengan permukaan buffer depan. Anggota dwBackBufferCount dari struktur DDSURFACEDESC harus diatur ke setidaknya 1 agar panggilan metode berhasil. Kemampuan DDSCAPS_COMPLEX harus selalu diatur saat membuat beberapa permukaan dengan menggunakan metode CreateSurface .
DDSCAPS_FRONTBUFFER Permukaan ini adalah buffer depan struktur pembalik permukaan. Bendera ini biasanya diatur oleh metode CreateSurface aplikasi saat kemampuan DDSCAPS_FLIP diatur. Jika kemampuan ini dikirim ke metode CreateSurface , buffer depan yang berdiri sendiri dibuat. Permukaan ini tidak akan memiliki kemampuan DDSCAPS_FLIP. Ini dapat dilampirkan ke buffer belakang lainnya untuk membentuk struktur membalik dengan menggunakan metode AddAttachedSurface aplikasi.
DDSCAPS_HWCODEC Permukaan ini harus dapat memiliki aliran yang didekompresi oleh perangkat keras.
DDSCAPS_LIVEVIDEO Permukaan ini harus dapat menerima video langsung.
DDSCAPS_LOCALVIDMEM Permukaan ini ada dalam memori tampilan lokal yang benar, bukan memori tampilan nonlokal. Jika bendera ini ditentukan, DDSCAPS_VIDEOMEMORY juga harus ditentukan. Bendera ini tidak dapat digunakan dengan bendera DDSCAPS_NONLOCALVIDMEM.
DDSCAPS_MIPMAP Permukaan ini adalah satu tingkat mipmap. Permukaan ini akan melekat pada permukaan DDSCAPS_MIPMAP lain untuk membentuk mipmap. Ini dapat dilakukan secara eksplisit dengan membuat sejumlah permukaan dan melampirkannya dengan menggunakan metode AddAttachedSurface aplikasi, atau secara implisit dengan metode CreateSurface aplikasi. Jika kemampuan ini diatur, DDSCAPS_TEXTURE juga harus diatur.
DDSCAPS_MODEX Permukaan ini adalah permukaan Mode X 320x200 atau 320x240.
DDSCAPS_NONLOCALVIDMEM Permukaan ini ada dalam memori tampilan nonlokal daripada memori tampilan lokal true. Jika bendera ini ditentukan, maka bendera DDSCAPS_VIDEOMEMORY juga harus ditentukan. Ini tidak dapat digunakan dengan bendera DDSCAPS_LOCALVIDMEM.
DDSCAPS_OFFSCREENPLAIN Permukaan ini adalah permukaan di luar layar yang bukan overlay, tekstur, z-buffer, front-buffer, back-buffer, atau permukaan alfa. Ini digunakan untuk mengidentifikasi permukaan biasa.
DDSCAPS_OPTIMIZED Saat ini tidak diimplementasikan.
DDSCAPS_OVERLAY Permukaan ini adalah overlay. Ini mungkin atau mungkin tidak langsung terlihat tergantung pada apakah saat ini sedang dilapisi ke permukaan utama. DDSCAPS_VISIBLE dapat digunakan untuk menentukan apakah sedang dilapisi saat ini.
DDSCAPS_OWNDC Permukaan ini akan memiliki asosiasi konteks perangkat (DC) untuk jangka waktu yang lama.
DDSCAPS_PALETTE Driver perangkat ini memungkinkan objek DirectDrawPalette unik untuk dibuat dan dilampirkan ke permukaan ini.
DDSCAPS_PRIMARYSURFACE Permukaan adalah permukaan utama. Ini mewakili apa yang terlihat oleh pengguna saat ini.
DDSCAPS_PRIMARYSURFACELEFT Permukaan ini adalah permukaan utama untuk mata kiri. Ini mewakili apa yang terlihat oleh mata kiri pengguna saat ini. Ketika permukaan ini dibuat, permukaan dengan kemampuan DDSCAPS_PRIMARYSURFACE mewakili apa yang terlihat oleh mata kanan pengguna.
DDSCAPS_STANDARDVGAMODE Permukaan ini adalah permukaan mode VGA standar, dan bukan permukaan ModeX. Bendera ini tidak dapat digunakan dalam kombinasi dengan bendera DDSCAPS_MODEX.
DDSCAPS_SYSTEMMEMORY Memori permukaan ini dialokasikan dalam memori sistem.
DDSCAPS_TEXTURE Permukaan ini dapat digunakan sebagai tekstur 3D. Ini tidak menunjukkan apakah permukaan digunakan untuk tujuan itu.
DDSCAPS_VIDEOMEMORY Permukaan ini ada dalam memori tampilan.
DDSCAPS_VIDEOPORT Permukaan ini dapat menerima data dari port video perangkat keras.
DDSCAPS_VISIBLE Perubahan yang dilakukan pada permukaan ini segera terlihat. Ini selalu diatur untuk permukaan utama, serta untuk overlay saat sedang dilapisi dan peta tekstur saat sedang diteksur.
DDSCAPS_WRITEONLY Hanya akses tulis yang diizinkan ke permukaan. Akses baca dari permukaan dapat menghasilkan kesalahan perlindungan umum (GPF), tetapi hasil baca dari permukaan ini tidak bermakna.
DDSCAPS_ZBUFFER Permukaan ini adalah z-buffer. Z-buffer berisi informasi yang tidak dapat ditampilkan. Sebaliknya, ini berisi informasi kedalaman bit yang digunakan untuk menentukan piksel mana yang terlihat dan mana yang dikaburkan.

dwFormatFlags

Menentukan sekumpulan bendera kontrol opsional. Anggota ini dapat diatur ke kombinasi bendera berikut:

Bendera Makna
DDPF_ALPHA Format piksel menjelaskan permukaan khusus alfa.
DDPF_ALPHAPIXELS Permukaan memiliki informasi saluran alfa dalam format piksel.
DDPF_ALPHAPREMULT Dicadangkan untuk penggunaan sistem.
DDPF_BUMPDUDV Data dUdV peta benjolan dalam format piksel valid.
DDPF_BUMPLUMINANCE Data luminance dalam format piksel valid. Bendera ini digunakan saat menggantung luminance dari permukaan benjolan; bitmask untuk bagian luminance piksel kemudian ditunjukkan oleh anggota dwBumpLuminanceBitCount dari struktur DDPIXELFORMAT .
DDPF_COMPRESSED Permukaan menerima data piksel dalam format yang ditentukan dan memadatkannya selama operasi tulis.
DDPF_FOURCC Kode FOURCC valid.
DDPF_LUMINANCE Data luminance dalam format piksel valid. Bendera ini digunakan hanya untuk luminance atau luminance ditambah permukaan alfa; kedalaman bit kemudian ditunjukkan oleh anggota dwLuminanceBitCount dari struktur DDPIXELFORMAT.
DDPF_PALETTEINDEXED1 Permukaan diindeks warna 1-bit.
DDPF_PALETTEINDEXED2 Permukaan diindeks warna 2-bit.
DDPF_PALETTEINDEXED4 Permukaannya diindeks warna 4-bit.
DDPF_PALETTEINDEXED8 Permukaan diindeks warna 8-bit.
DDPF_PALETTEINDEXEDTO8 Permukaannya adalah warna 1-, 2-, atau 4-bit yang diindeks ke palet 8-bit.
DDPF_RGB Data RGB dalam struktur format piksel valid.
DDPF_RGBTOYUV Permukaan menerima data RGB dan menerjemahkannya selama operasi tulis ke data YUV. Format data yang akan ditulis terkandung dalam struktur format piksel. Bendera DDPF_RGB diatur.
DDPF_STENCILBUFFER Permukaan berisi informasi stensil bersama dengan informasi Z.
DDPF_YUV Data YUV dalam struktur format piksel valid.
DDPF_ZBUFFER Format piksel menjelaskan permukaan z-buffer-only.
DDPF_ZPIXELS Permukaannya dalam format RGBZ.

dwFormatFourCC

Menentukan kode FOURCC . Untuk informasi selengkapnya tentang kode FOURCC, lihat dokumentasi DirectX SDK.

dwFormatBitCount

Menentukan jumlah bit per piksel (4, 8, 16, 24, atau 32) data RGB atau YUV.

dwRBitMask

Menentukan masker untuk bit merah.

dwYBitMask

Menentukan masker untuk bit Y.

dwGBitMask

Menentukan masker untuk bit hijau.

dwUBitMask

Menentukan masker untuk bit U.

dwBBitMask

Menentukan masker untuk bit biru.

dwVBitMask

Menentukan masker untuk bit V.

Persyaratan

Persyaratan Nilai
Header ddkmapi.h (termasuk Ddkmapi.h)

Lihat juga

DD_DXAPI_LOCK

DxApi