*/
#include <drm.h>
-#include "xf86mm.h"
/*
* This is the interface for modesetting for drm.
* buffer object interface. This object needs to be pinned.
*/
-
typedef struct _drmModeRes {
int count_fbs;
typedef struct _drmModeCrtc {
unsigned int crtc_id;
- unsigned int buffer_id; /**< FB id to connect to 0 = disconnect*/
+ unsigned int buffer_id; /**< FB id to connect to 0 = disconnect */
- uint32_t x, y; /**< Position on the frameuffer */
+ uint32_t x, y; /**< Position on the framebuffer */
uint32_t width, height;
int mode_valid;
struct drm_mode_modeinfo mode;
- int count_connectors;
- uint32_t connectors; /**< Connectors that are connected */
-
- int count_possibles;
- uint32_t possibles; /**< Connectors that can be connected */
-
int gamma_size; /**< Number of gamma stops */
} drmModeCrtc, *drmModeCrtcPtr;
typedef struct _drmModeEncoder {
unsigned int encoder_id;
unsigned int encoder_type;
- uint32_t crtcs;
- uint32_t clones;
+ unsigned int crtc_id;
+ uint32_t possible_crtcs;
+ uint32_t possible_clones;
} drmModeEncoder, *drmModeEncoderPtr;
typedef enum {
typedef struct _drmModeConnector {
unsigned int connector_id;
-
- unsigned int crtc; /**< Crtc currently connected to */
+ unsigned int encoder_id; /**< Encoder currently connected to */
unsigned int connector_type;
unsigned int connector_type_id;
drmModeConnection connection;
uint32_t mmWidth, mmHeight; /**< HxW in millimeters */
drmModeSubPixel subpixel;
- int count_crtcs;
- uint32_t crtcs; /**< Possible crtc to connect to */
-
- int count_clones;
- uint32_t clones; /**< Mask of clones */
-
int count_modes;
struct drm_mode_modeinfo *modes;
extern int drmModeConnectorSetProperty(int fd, uint32_t connector_id, uint32_t property_id,
uint64_t value);
extern int drmCheckModesettingSupported(const char *busid);
+
+extern int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size,
+ uint16_t *red, uint16_t *green, uint16_t *blue);
+extern int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
+ uint16_t *red, uint16_t *green, uint16_t *blue);