Panda3D
Functions | Variables
config_display.cxx File Reference

PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University. More...

#include "config_display.h"
#include "callbackGraphicsWindow.h"
#include "displayRegion.h"
#include "displayRegionCullCallbackData.h"
#include "displayRegionDrawCallbackData.h"
#include "standardMunger.h"
#include "graphicsStateGuardian.h"
#include "graphicsPipe.h"
#include "graphicsOutput.h"
#include "graphicsBuffer.h"
#include "graphicsDevice.h"
#include "graphicsWindow.h"
#include "graphicsWindowInputDevice.h"
#include "graphicsWindowProcCallbackData.h"
#include "mouseAndKeyboard.h"
#include "nativeWindowHandle.h"
#include "parasiteBuffer.h"
#include "pandaSystem.h"
#include "stereoDisplayRegion.h"
#include "subprocessWindow.h"
#include "windowHandle.h"

Go to the source code of this file.

Functions

 ConfigureDef (config_display)
 
 ConfigureFn (config_display)
 
void init_libdisplay ()
 Initializes the library. More...
 
 NotifyCategoryDef (display, "")
 
 NotifyCategoryDef (gsg, display_cat)
 

Variables

ConfigVariableInt accum_bits ("accum-bits", 0, PRC_DESC("The minimum number of accumulator buffer bits requested."))
 
ConfigVariableBool allow_incomplete_render ("allow-incomplete-render", true, PRC_DESC("When this is true, the frame may be rendered even if some of the " "geometry in the scene has been paged out, or if the textures are " "unavailable. The nonresident geometry and textures will be " "rendered as soon as they can be read from disk, " "which may be several frames in the future. When this is false, " "geometry is always paged in immediately when needed, holding up " "the frame render if necessary."))
 
ConfigVariableBool allow_nonpipeline_threads ("allow-nonpipeline-threads", false, PRC_DESC("This variable should only be set true for debugging or development " "purposes. When true, the threading-model variable may specify " "a threaded pipeline mode, even if pipelining is not compiled in. " "This will certainly result in erroneous behavior, and quite likely " "will cause a crash. Do not set this unless you know what you " "are doing."))
 
ConfigVariableInt alpha_bits ("alpha-bits", 0, PRC_DESC("The minimum number of alpha buffer bits requested."))
 
ConfigVariableBool alpha_scale_via_texture ("alpha-scale-via-texture", true, PRC_DESC("When this is true, Panda will try to implement " "ColorScaleAttribs that affect alpha by " "creating an additional Texture layer over the geometry " "with a uniform alpha scale applied everywhere, if there " "is at least one available Texture slot available on the " "multitexture pipeline. Set this false to avoid this " "trickery, so that texturing is only enabled when the " "application specifically enables it. See also " "color-scale-via-lighting."))
 
ConfigVariableBool auto_flip ("auto-flip", false, PRC_DESC("This indicates the initial setting of the auto-flip flag. Set it " "true to cause render_frame() to flip all the windows " "before it returns (in single-threaded mode only), or false to wait " "until an explicit call to flip_frame() or the next " "render_frame(). Setting it true gets more immediate response " "time, while setting it false can get a better frame rate as more " "is achieved in parallel with the graphics card."))
 
ConfigVariableInt back_buffers ("back-buffers", 1, PRC_DESC("The default number of back buffers requested."))
 
ConfigVariableColor background_color ("background-color", "0.41 0.41 0.41 0.0", PRC_DESC("Specifies the rgb(a) value of the default background color for a " "new window or offscreen buffer."))
 
ConfigVariableInt color_bits ("color-bits", "", PRC_DESC("The minimum number of total color buffer bits requested. If you " "specify only one value, it will represent the total value for the " "red, green and blue channels, and indicates you don't care how the " "bits are divided up among the red, green and blue channels. If " "you specify three values, it represents three separate red, green " "and blue bit requirements."))
 
ConfigVariableBool color_scale_via_lighting ("color-scale-via-lighting", true, PRC_DESC("When this is true, Panda will try to implement ColorAttribs and " "ColorScaleAttribs using the lighting interface, by " "creating a default material and/or an ambient light if " "necessary, even if lighting is ostensibly disabled. This " "avoids the need to munge the vertex data to change each vertex's " "color. Set this false to avoid this trickery, so that lighting " "is only enabled when the application specifically enables " "it. See also alpha-scale-via-texture."))
 
ConfigVariableBool copy_texture_inverted ("copy-texture-inverted", false, PRC_DESC("Set this true to indicate that the GSG in use will invert textures when " "it performs a framebuffer-to-texture copy operation, or false to indicate " "that it does the right thing. If this is not set, the default behavior is " "determined by the GSG's internal logic."))
 
ConfigVariableFilename cursor_filename ("cursor-filename", "")
 
ConfigVariableBool cursor_hidden ("cursor-hidden", false)
 
ConfigVariableBool default_stereo_camera ("default-stereo-camera", true, PRC_DESC("When this is true, the default DisplayRegion created for " "a window or buffer with the stereo property will be a " "StereoDisplayRegion, which activates the stereo properties of " "the camera lens, and enables stereo. Set this false to " "require StereoDisplayRegions to be created explicitly."))
 
ConfigVariableInt depth_bits ("depth-bits", 0, PRC_DESC("The minimum number of depth buffer bits requested."))
 
ConfigVariableBool force_parasite_buffer ("force-parasite-buffer", false, PRC_DESC("Set this true to make GraphicsOutput::make_texture_buffer() really " "strongly prefer ParasiteBuffers over conventional offscreen buffers. " "With this set, it will create a ParasiteBuffer every time an offscreen " "buffer is requested, even if this means reducing the buffer size to fit " "within the window. The only exceptions are for buffers that, by their " "nature, really cannot use ParasiteBuffers (like depth textures). You might " "set this true if you don't trust your graphics driver's support for " "offscreen buffers."))
 
ConfigVariableBool framebuffer_accum ("framebuffer-accum", false, PRC_DESC("True if FM_accum should be added to the default framebuffer " "properties, which requests an accumulator buffer if possible."))
 
ConfigVariableBool framebuffer_alpha ("framebuffer-alpha", true, PRC_DESC("True if FM_alpha should be added to the default framebuffer " "properties, which requests an alpha channel if possible."))
 
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_float ("framebuffer-float", false, PRC_DESC("Set this to request a framebuffer that uses floating-point " "storage for the color channel."))
 
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."))
 
ConfigVariableString framebuffer_mode ("framebuffer-mode", "", PRC_DESC("No longer has any effect. Do not use."))
 
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_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_srgb ("framebuffer-srgb", false, PRC_DESC("Set this to request an sRGB framebuffer, which will " "convert all values to linear space before blending. This " "means that the output will be properly gamma-corrected, as " "long as all the input textures are either converted from " "original sRGB to linear or sRGB textures are used."))
 
ConfigVariableBool framebuffer_stencil ("framebuffer-stencil", false, PRC_DESC("True if FM_stencil should be added to the default framebuffer " "properties, which requests an stencil buffer 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."))
 
ConfigVariableBool fullscreen ("fullscreen", false)
 
ConfigVariableFilename icon_filename ("icon-filename", "")
 
ConfigVariableInt max_color_targets ("max-color-targets", -1, PRC_DESC("Set this to a positive integer to limit the number of " "color targets reported by the GSG. This can be used to limit " "the amount of render targets Panda will attempt to use. " "If this is zero or less, the GSG will report its honest number " "of color targets, allowing Panda the full use of the graphics " "card; if it is 1 or more, then Panda will never allow more than " "this number of color targets simultaneously, regardless of " "what the GSG says it can do."))
 
ConfigVariableInt max_texture_stages ("max-texture-stages", -1, PRC_DESC("Set this to a positive integer to limit the number of " "texture stages reported by the GSG. This can be used to limit " "the amount of multitexturing Panda will attempt to use. " "If this is zero or less, the GSG will report its honest number " "of texture stages, allowing Panda the full use of the graphics " "card; if it is 1 or more, then Panda will never allow more than " "this number of texture stages simultaneously, regardless of " "what the GSG says it can do."))
 
ConfigVariableInt multisamples ("multisamples", 0, PRC_DESC("The minimum number of samples requested."))
 
ConfigVariableBool old_alpha_blend ("old-alpha-blend", false, PRC_DESC("Set this to true to enable the old alpha blending behavior from " "Panda 1.9 in which the alpha value written out to the framebuffer " "is squared. The new behavior is more intuitive when compositing " "an semitransparent image produced using render-to-texture. You " "should generally leave this false unless you have an effect that " "relies on the old behavior, or you suspect an implementation bug."))
 
ConfigVariableInt parent_window_handle ("parent-window-handle", 0, PRC_DESC("The window handle of the parent window to attach the Panda window " "to, for the purposes of creating an embedded window. This is " "an HWND on Windows, or the NSWindow pointer or XWindow pointer " "converted to an integer, on OSX and X11."))
 
ConfigVariableDouble pixel_zoom ("pixel-zoom", 1.0, PRC_DESC("The default pixel_zoom factor for new windows."))
 
ConfigVariableBool prefer_parasite_buffer ("prefer-parasite-buffer", false, PRC_DESC("Set this true to make GraphicsOutput::make_texture_buffer() try to " "create a ParasiteBuffer before it tries to create an offscreen " "buffer (assuming it could not create a direct render buffer for " "some reason). This may reduce your graphics card memory " "requirements by sharing memory with the framebuffer, but it can " "cause problems if the user subsequently resizes the window " "smaller than the buffer."))
 
ConfigVariableBool prefer_single_buffer ("prefer-single-buffer", true, PRC_DESC("Set this true to make GraphicsOutput::make_render_texture() first " "try to create a single-buffered offscreen buffer, before falling " "back to a double-buffered one (or whatever kind the source window " "has). This is true by default to reduce waste of framebuffer " "memory, but you might get a performance benefit by setting it to " "false (since in that case the buffer can share a graphics context " "with the window)."))
 
ConfigVariableBool prefer_texture_buffer ("prefer-texture-buffer", true, PRC_DESC("Set this true to make GraphicsOutput::make_texture_buffer() always " "try to create an offscreen buffer supporting render-to-texture, " "if the graphics card claims to be able to support this feature. " "If the graphics card cannot support this feature, this option is " "ignored. This is usually the fastest way to render " "to a texture, and it presumably does not consume any additional " "framebuffer memory over a copy-to-texture operation (since " "the texture and the buffer share the " "same memory)."))
 
ConfigVariableBool pstats_unused_states ("pstats-unused-states", false, PRC_DESC("Set this true to show the number of unused states in the pstats " "graph for TransformState and RenderState counts. This adds a bit " "of per-frame overhead to count these things up."))
 
ConfigVariableBool red_blue_stereo ("red-blue-stereo", false, PRC_DESC("Set this true to create windows with red-blue stereo mode enabled " "by default, if the framebuffer does not support true stereo " "rendering."))
 
ConfigVariableString red_blue_stereo_colors ("red-blue-stereo-colors", "red cyan", PRC_DESC("This defines the color channels that are used for the left and " "right eye, respectively, for red-blue-stereo mode. This should " "be a two-word string, where each word is one of 'red', 'blue', " "'green', 'cyan', 'magenta', 'yellow', or 'alpha', or a union " "of two or more words separated by a vertical pipe (|)."))
 
ConfigVariableDouble sbs_left_dimensions ("sbs-left-dimensions", "0.0 0.5 0.0 1.0", PRC_DESC("Defines the default region of the window that is used for the " "left eye, when side-by-side stereo is enabled. This is a set of " "four numbers, in the form left right top bottom, similar to a " "normal DisplayRegion layout."))
 
ConfigVariableDouble sbs_right_dimensions ("sbs-right-dimensions", "0.5 1.0 0.0 1.0", PRC_DESC("Defines the default region of the window that is used for the " "right eye, when side-by-side stereo is enabled. This is a set of " "four numbers, in the form left right top bottom, similar to a " "normal DisplayRegion layout."))
 
ConfigVariableString screenshot_extension ("screenshot-extension", "jpg", PRC_DESC("This specifies the default filename extension (and therefore the " "default image type) to be used for saving screenshots."))
 
ConfigVariableString screenshot_filename ("screenshot-filename", "%~p-%a-%b-%d-%H-%M-%S-%Y-%~f.%~e", PRC_DESC("This specifies the filename pattern to be used to generate " "screenshots captured via save_screenshot_default(). See " "DisplayRegion::save_screenshot()."))
 
ConfigVariableInt shadow_depth_bits ("shadow-depth-bits", 24, PRC_DESC("The minimum number of depth buffer bits requested when rendering " "shadow maps. Set this to 32 for more depth resolution in shadow " "maps."))
 
ConfigVariableBool side_by_side_stereo ("side-by-side-stereo", false, PRC_DESC("Set this true to create windows with side-by-side stereo mode enabled " "by default, if the framebuffer does not support true stereo " "rendering."))
 
ConfigVariableInt stencil_bits ("stencil-bits", 0, PRC_DESC("The minimum number of stencil buffer bits requested."))
 
ConfigVariableFilename subprocess_window ("subprocess-window", "", PRC_DESC("The filename of a SubprocessWindowBuffer's temporary mmap file, " "used for opening a window in a child process and rendering " "to a different window in the parent process. " "This is specifically used for OSX when the plugin is compiled, " "and is not used or needed in other environments. See " "WindowProperties::set_subprocess_window()."))
 
ConfigVariableDouble subprocess_window_max_wait ("subprocess-window-max-wait", 0.2, PRC_DESC("This is the amount of time, in seconds, that the SubprocessWindow will " "wait in begin_flip for the parent process to remove the previously-rendered " "frame. When this time is exceeded, the next frame will be rendered without " "having flipped the previous one. This is designed to allow the Python " "process some time to run even when the parent window is offscreen or minimized."))
 
ConfigVariableBool support_render_texture ("support-render-texture", true, PRC_DESC("Set this true allow use of the render-to-a-texture feature, if it " "is supported by your graphics card. Without this enabled, " "offscreen renders will be copied to a texture instead of directly " "rendered there."))
 
ConfigVariableBool support_rescale_normal ("support-rescale-normal", true, PRC_DESC("Set this true to allow use of the rescale-normal feature, if it " "is supported by your graphics card. This allows lighting normals " "to be uniformly counter-scaled, instead of re-normalized, " "in the presence of a uniform scale, which should in principle be " "a bit faster. This feature is only supported " "by the OpenGL API."))
 
ConfigVariableBool support_stencil ("support-stencil", true, PRC_DESC("Set this true to allow use of the stencil buffer, if it " "is supported by your graphics card. If this is false, stencil " "buffer support will not be enabled, even if it is supported. " "Generally, only very old cards do not support some kind of " "stencil buffer operations; but it is also not supported by " "our tinydisplay renderer. " "The main reason to set this false is to test your code in " "the absence of stencil buffer support."))
 
ConfigVariableBool swap_eyes ("swap-eyes", false, PRC_DESC("Set this true to reverse the left and right channel output of " "stereo DisplayRegions."))
 
ConfigVariableBool sync_flip ("sync-flip", false, PRC_DESC("Set this true to attempt to flip all windows at the same time, " "or false to flip each window as late as possible. Setting this " "false can improve parallelization. This is a temporary " "variable; it will later be replaced with a more explicit control " "over synchronizing window flip."))
 
ConfigVariableBool sync_video ("sync-video", true, PRC_DESC("Configure this true to request the rendering to sync to the video " "refresh, or false to let your frame rate go as high as it can, " "irrespective of the video refresh. Usually you want this true, " "but it may be useful to set it false during development for a " "cheesy estimate of scene complexity. Some drivers may ignore " "this request."))
 
ConfigVariableString threading_model ("threading-model", "", PRC_DESC("This is the default threading model to use for new windows. Use " "empty string for single-threaded, or something like \"cull/draw\" for " "a 3-stage pipeline. See GraphicsEngine::set_threading_model(). " "EXPERIMENTAL and incomplete, do not use this!"))
 
ConfigVariableBool undecorated ("undecorated", false, PRC_DESC("This specifies the default value of the 'undecorated' window " "property. When this is true, the default window is created " "without a title bar or resizable border."))
 
ConfigVariableBool view_frustum_cull ("view-frustum-cull", true, PRC_DESC("This is normally true; set it false to disable view-frustum culling " "(primarily useful for debugging)."))
 
ConfigVariableBool win_fixed_size ("win-fixed-size", false, PRC_DESC("This specifies the default value of the 'fixed_size' window " "property. When this is true, the default window is created " "without a resizable border."))
 
ConfigVariableInt win_origin ("win-origin", "", PRC_DESC("This is the default position at which to open a new window. This " "replaces the deprecated win-origin-x and win-origin-y variables. " "A window coordinate of -1 means to choose a default value, " "whereas -2 means to center the window on the screen."))
 
ConfigVariableInt win_size ("win-size", "800 600", PRC_DESC("This is the default size at which to open a new window. This " "replaces the deprecated win-width and win-height variables."))
 
ConfigVariableBool win_unexposed_draw ("win-unexposed-draw", true, PRC_DESC("Specifies the default setting of GraphicsWindow::set_unexposed_draw(). " "See that method for more information."))
 
ConfigVariableBool window_inverted ("window-inverted", false, PRC_DESC("Set this true to create all windows with the inverted flag set, so that " "they will render upside-down and backwards. Normally this is useful only " "for debugging."))
 
ConfigVariableString window_title ("window-title", "Panda")
 
ConfigVariableBool yield_timeslice ("yield-timeslice", false, PRC_DESC("Set this true to yield the timeslice at the end of the frame to be " "more polite to other applications that are trying to run."))
 
ConfigVariableEnum< WindowProperties::ZOrder > z_order ("z-order", WindowProperties::Z_normal)
 

Detailed Description

PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.

All rights reserved.

All use of this software is subject to the terms of the revised BSD license. You should have received a copy of this license along with this source code in a file named "LICENSE."

Author
drose
Date
1999-10-06

Definition in file config_display.cxx.

Function Documentation

◆ init_libdisplay()

void init_libdisplay ( )

Initializes the library.

This must be called at least once before any of the functions or classes in this library can be used. Normally it will be called by the static initializers and need not be called explicitly, but special cases exist.

Definition at line 488 of file config_display.cxx.

References PandaSystem::add_system(), and PandaSystem::get_global_ptr().

Referenced by init_libandroiddisplay(), and init_libpanda().