add individual control over framebuffer-mode elements

This commit is contained in:
David Rose 2006-02-17 19:35:14 +00:00
parent 47c2e41c75
commit 84c88164ce
3 changed files with 57 additions and 4 deletions

View File

@ -228,9 +228,37 @@ ConfigVariableString window_title
("window-title", "Panda");
ConfigVariableString framebuffer_mode
("framebuffer-mode", "rgba double-buffer depth hardware",
("framebuffer-mode", "rgb double-buffer",
PRC_DESC("A space-separated list of keywords that describe the default "
"framebuffer properties requested for a window."));
ConfigVariableBool framebuffer_hardware
("framebuffer-hardware", true,
PRC_DESC("True if FM_hardware should be added to the default framebuffer "
"properties, which requests a hardware-accelerated display."));
ConfigVariableBool framebuffer_software
("framebuffer-software", false,
PRC_DESC("True if FM_software should be added to the default framebuffer "
"properties, which requests a software-only display."));
ConfigVariableBool framebuffer_multisample
("framebuffer-multisample", false,
PRC_DESC("True if FM_multisample should be added to the default framebuffer "
"properties, which requests a multisample-capable display, if "
"possible. This can be used to implement full-screen "
"antialiasing."));
ConfigVariableBool framebuffer_depth
("framebuffer-depth", true,
PRC_DESC("True if FM_depth should be added to the default framebuffer "
"properties, which requests a depth buffer."));
ConfigVariableBool framebuffer_alpha
("framebuffer-alpha", true,
PRC_DESC("True if FM_depth should be added to the default framebuffer "
"properties, which requests an alpha channel if possible."));
ConfigVariableBool framebuffer_stereo
("framebuffer-stereo", false,
PRC_DESC("True if FM_stereo should be added to the default framebuffer "
"properties, which requests a stereo-capable display, if "
"supported by the graphics driver."));
ConfigVariableInt depth_bits
("depth-bits", 1,
PRC_DESC("The minimum number of depth bits requested if the depth keyword "

View File

@ -75,6 +75,12 @@ extern EXPCL_PANDA ConfigVariableEnum<WindowProperties::ZOrder> z_order;
extern EXPCL_PANDA ConfigVariableString window_title;
extern EXPCL_PANDA ConfigVariableString framebuffer_mode;
extern EXPCL_PANDA ConfigVariableBool framebuffer_hardware;
extern EXPCL_PANDA ConfigVariableBool framebuffer_software;
extern EXPCL_PANDA ConfigVariableBool framebuffer_multisample;
extern EXPCL_PANDA ConfigVariableBool framebuffer_depth;
extern EXPCL_PANDA ConfigVariableBool framebuffer_alpha;
extern EXPCL_PANDA ConfigVariableBool framebuffer_stereo;
extern EXPCL_PANDA ConfigVariableInt depth_bits;
extern EXPCL_PANDA ConfigVariableInt color_bits;
extern EXPCL_PANDA ConfigVariableInt alpha_bits;

View File

@ -70,15 +70,15 @@ get_default() {
} else if (cmp_nocase_uh(word, "single") == 0 ||
cmp_nocase_uh(word, "single-buffer") == 0) {
mode |= FM_single_buffer;
mode = (mode & ~FM_buffer) | FM_single_buffer;
} else if (cmp_nocase_uh(word, "double") == 0 ||
cmp_nocase_uh(word, "double-buffer") == 0) {
mode |= FM_double_buffer;
mode = (mode & ~FM_buffer) | FM_double_buffer;
} else if (cmp_nocase_uh(word, "triple") == 0 ||
cmp_nocase_uh(word, "triple-buffer") == 0) {
mode |= FM_triple_buffer;
mode = (mode & ~FM_buffer) | FM_triple_buffer;
} else if (cmp_nocase_uh(word, "accum") == 0) {
mode |= FM_accum;
@ -113,6 +113,25 @@ get_default() {
}
}
if (framebuffer_hardware) {
mode |= FM_hardware;
}
if (framebuffer_software) {
mode |= FM_software;
}
if (framebuffer_multisample) {
mode |= FM_multisample;
}
if (framebuffer_depth) {
mode |= FM_depth;
}
if (framebuffer_alpha) {
mode |= FM_alpha;
}
if (framebuffer_stereo) {
mode |= FM_stereo;
}
props.set_frame_buffer_mode(mode);
props.set_depth_bits(depth_bits);
props.set_color_bits(color_bits);