Struktur DIEFFECTATTRIBUTES (dinputd.h)

Struktur DIEFFECTATTRIBUTES menjelaskan informasi yang terkandung dalam nilai "Atribut" kunci registri untuk setiap efek yang didukung oleh perangkat umpan balik paksa.

Sintaks

typedef struct DIEFFECTATTRIBUTES {
  DWORD dwEffectId;
  DWORD dwEffType;
  DWORD dwStaticParams;
  DWORD dwDynamicParams;
  DWORD dwCoords;
} DIEFFECTATTRIBUTES, *LPDIEFFECTATTRIBUTES;

Anggota

dwEffectId

Menentukan nilai 32-bit arbitrer yang diteruskan ke driver untuk mengidentifikasi efeknya. Driver menerima nilai ini sebagai parameter dwEffectID ke metode IDirectInputEffectDriver::D ownloadEffect .

dwEffType

Menjelaskan kategori dan kemampuan efeknya. Anggota ini harus terdiri dari salah satu nilai berikut:

DIEFT_CONSTANTFORCE

Efek mewakili efek gaya konstan. Saat membuat atau memodifikasi efek gaya konstan, anggota lpvTypeSpecificParams dari struktur DIEFFECT menunjuk ke struktur DICONSTANTFORCE dan anggota cbTypeSpecificParams dari struktur DIEFFECT diatur ke sizeof (DICONSTANTFORCE).

DIEFT_RAMPFORCE

Efeknya mewakili efek ramp-force. Saat membuat atau memodifikasi efek ramp-force, anggota lpvTypeSpecificParams dari titik struktur DIEFFECT ke struktur DIRAMPFORCE dan anggota cbTypeSpecificParams dari struktur DIEFFECT diatur ke sizeof (DIRAMPFORCE).

DIEFT_PERIODIC

Efek mewakili efek berkala. Saat membuat atau memodifikasi efek berkala, anggota lpvTypeSpecificParams dari struktur DIEFFECT menunjuk ke struktur DIPERIODIC dan anggota cbTypeSpecificParams dari struktur DIEFFECT diatur ke sizeof(DIPERIODIC).

DIEFT_CONDITION

Efek mewakili kondisi. Saat membuat atau mengubah kondisi, anggota lpvTypeSpecificParams dari struktur DIEFFECT menunjuk ke array struktur DICONDITION (baik tepat satu struktur DICONDITION atau satu struktur DICONDITION per sumbu) dan anggota cbTypeSpecificParams dari struktur DIEFFECT diatur ke sizeof(DICONDITION) atau cAxis * sizeof(DICONDITION), masing-masing. Jika cbTypeSpecificParams diatur ke sizeof(DICONDITION), maka efek mewakili kondisi sumbu tunggal yang dapat diputar. Jika cbTypeSpecificParams diatur ke cAxis * sizeof(DICONDITION), maka efek mewakili kondisi multi-sumbu, dengan setiap struktur DICONDITION berlaku untuk sumbu masing-masing dalam daftar rgdwAxes.

DIEFT_CUSTOMFORCE

Efek mewakili efek gaya kustom. Saat membuat atau memodifikasi efek gaya kustom, anggota lpvTypeSpecificParams dari struktur DIEFFECT menunjuk ke struktur DICUSTOMFORCE dan anggota cbTypeSpecificParams dari struktur DIEFFECT diatur ke sizeof (DICUSTOMFORCE).

DIEFT_HARDWARE

Efeknya mewakili efek khusus perangkat keras. Vendor perangkat keras diperlukan untuk memberikan dokumentasi tambahan kepada penulis aplikasi tentang bagaimana efeknya harus digunakan. Selain kode kategori, anggota dwEffTtype juga dapat berisi nol, satu, atau beberapa bendera berikut yang menjelaskan kemampuan efek:

DIEFT_FFATTACK

Generator efek untuk efek ini mendukung parameter amplop serangan. Jika generator efek tidak mendukung serangan, maka tingkat serangan dan parameter waktu serangan struktur DIENVELOPE diabaikan oleh efeknya.

DIEFT_FFFADE

Generator efek untuk efek ini mendukung parameter pudar. Jika generator efek tidak mendukung pudar, tingkat pudar dan parameter waktu pudar dari struktur DIENVELOPE diabaikan oleh efeknya. Jika DIEFT_FFATTACK atau DIEFT_FFFADE tidak diatur, efeknya tidak mendukung amplop, dan amplop yang disediakan diabaikan.

DIEFT_SATURATION

Generator efek untuk efek ini mendukung saturasi efek kondisi. Jika generator efek tidak mendukung saturasi, maka kekuatan yang dihasilkan oleh kondisi hanya dibatasi oleh kekuatan maksimum yang dapat dihasilkan perangkat.

DIEFT_POSNEGCOEFFICIENTS

Generator efek untuk efek ini mendukung dua nilai koefisien untuk kondisi: satu untuk perpindahan sumbu positif dan satu untuk perpindahan negatif sumbu. Jika perangkat tidak mendukung koefisien, koefisien negatif dalam struktur DICONDITION diabaikan dan koefisien positif digunakan di kedua arah.

DIEFT_POSNEGSATURATION

Generator efek untuk efek mendukung saturasi maksimum untuk output gaya positif dan negatif. Jika perangkat tidak mendukung kedua nilai saturasi, maka saturasi negatif dalam struktur DICONDITION diabaikan dan saturasi positif digunakan di kedua arah.

dwStaticParams

Menjelaskan parameter yang didukung oleh efek . Misalnya, jika DIEP_ENVELOPE diatur, maka efek mendukung amplop. Semua efek harus mendukung setidaknya DIEP_DURATION, DIEP_AXES, dan DIEP_TYPESPECIFICPARAMS. Ini bukan kesalahan bagi aplikasi untuk mencoba menggunakan parameter efek yang tidak didukung oleh perangkat. Parameter yang tidak didukung hanya diabaikan. Nilai ini bisa nol, satu, atau beberapa bendera berikut:

DIEP_DURATION

Menunjukkan bahwa driver mendukung perubahan dwDuration (lihat struktur DIEFFECT) efek ketika efek tidak diputar.

DIEP_SAMPLEPERIOD

Menunjukkan bahwa driver mendukung perubahan dwSamplePeriod (lihat struktur DIEFFECT) efek ketika efeknya tidak diputar.

DIEP_GAIN

Menunjukkan bahwa driver mendukung perubahan dwGain (lihat struktur DIEFFECT) efek ketika efek tidak diputar.

DIEP_TRIGGERBUTTON

Menunjukkan bahwa driver mendukung perubahan dwTriggerButton (lihat struktur DIEFFECT) efek ketika efeknya tidak diputar.

DIEP_TRIGGERREPEATINTERVAL

Menunjukkan bahwa driver mendukung perubahan dwTriggerRepeatInterval (lihat struktur DIEFFECT) efek ketika efek tidak diputar.

DIEP_AXES

Menunjukkan bahwa driver mendukung perubahan cAxes dan rgdwAxes (lihat struktur DIEFFECT) efek ketika efeknya tidak diputar.

DIEP_DIRECTION

Menunjukkan bahwa driver mendukung perubahan cAxes dan rglDirection (lihat struktur DIEFFECT) efek ketika efeknya tidak diputar. (Anggota dwFlags dari struktur DIEFFECT menentukan, melalui DIEFF_CARTESIAN atau DIEFF_POLAR, sistem koordinat tempat nilai harus ditafsirkan.)

DIEP_ENVELOPE

Menunjukkan bahwa driver mendukung perubahan lpEnvelope (lihat struktur DIEFFECT) efek ketika efeknya tidak diputar.

DIEP_TYPESPECIFICPARAMS

Menunjukkan bahwa driver mendukung perubahan cbTypeSpecificParams dan lpTypeSpecificParams (lihat struktur DIEFFECT) efek ketika efeknya tidak diputar. Perhatikan bahwa buffer yang ditujukkan oleh anggota lpTypeSpecificParams dari struktur DIEFFECT harus tetap valid selama masa pakai efek (atau sampai parameter khusus jenis diatur ke nilai baru). DirectInput tidak membuat salinan privat buffer.

dwDynamicParams

Menjelaskan parameter efek yang dapat dimodifikasi saat efek sedang diputar. Jika aplikasi mencoba mengubah parameter saat efek sedang diputar, dan driver tidak mendukung modifikasi efek tersebut secara dinamis, maka driver akan kembali DIERR_EFFECTPLAYING. Anggota ini menggunakan bendera yang sama dengan anggota dwStaticParams , kecuali bahwa bendera ditafsirkan sebagai menjelaskan apakah driver dapat memodifikasi parameter efek saat efek sedang diputar, bukan saat tidak diputar.

dwCoords

Satu atau beberapa bendera sistem koordinat (DIEFF_CARTESIAN, DIEFF_POLAR, DIEFF_SPHERICAL) yang menunjukkan sistem koordinat mana yang didukung oleh efeknya. Setidaknya satu sistem koordinat harus didukung. Jika aplikasi mencoba mengatur arah ke sistem koordinat yang tidak didukung, DirectInput secara otomatis mengonversinya ke sistem koordinat yang didukung perangkat.

Keterangan

Untuk informasi tentang struktur DIEFFECT, DICONSTANTFORCE, DIRAMPFORCE, DIPERIODIC, DICONDITION, DICUSTOMFORCE, dan DIENVELOPE, lihat bagian DirectInput dari DirectX SDK.

Persyaratan

Persyaratan Nilai
Header dinputd.h