aboutsummaryrefslogtreecommitdiffstats
path: root/src/headless.rs
diff options
context:
space:
mode:
authorPierre Krieger <pierre.krieger1708@gmail.com>2015-09-21 13:15:43 +0200
committerPierre Krieger <pierre.krieger1708@gmail.com>2015-09-21 14:03:05 +0200
commit62bafe2130db5aaf32bd46091581086ae435e4cf (patch)
tree03056bc49bd5ec0da9e155176a74c2d23a8fc603 /src/headless.rs
parenta8d3342468cc1f490fddb361d54215d9e889271f (diff)
downloadglutin-62bafe2130db5aaf32bd46091581086ae435e4cf.tar.gz
glutin-62bafe2130db5aaf32bd46091581086ae435e4cf.zip
Remove BuilderAttribs
Diffstat (limited to 'src/headless.rs')
-rw-r--r--src/headless.rs42
1 files changed, 20 insertions, 22 deletions
diff --git a/src/headless.rs b/src/headless.rs
index 83e35b3..4730eb4 100644
--- a/src/headless.rs
+++ b/src/headless.rs
@@ -1,10 +1,11 @@
use Api;
-use BuilderAttribs;
use ContextError;
use CreationError;
+use GlAttributes;
use GlRequest;
use GlContext;
use PixelFormat;
+use PixelFormatRequirements;
use Robustness;
use WindowAttributes;
@@ -14,28 +15,25 @@ use libc;
use platform;
/// Object that allows you to build headless contexts.
-pub struct HeadlessRendererBuilder {
- attribs: BuilderAttribs<'static>,
+pub struct HeadlessRendererBuilder<'a> {
+ dimensions: (u32, u32),
+ pf_reqs: PixelFormatRequirements,
+ opengl: GlAttributes<&'a platform::HeadlessContext>,
}
-impl HeadlessRendererBuilder {
+impl<'a> HeadlessRendererBuilder<'a> {
/// Initializes a new `HeadlessRendererBuilder` with default values.
- pub fn new(width: u32, height: u32) -> HeadlessRendererBuilder {
+ pub fn new(width: u32, height: u32) -> HeadlessRendererBuilder<'a> {
HeadlessRendererBuilder {
- attribs: BuilderAttribs {
- headless: true,
- window: WindowAttributes {
- dimensions: Some((width, height)),
- .. Default::default()
- },
- .. BuilderAttribs::new()
- },
+ dimensions: (width, height),
+ pf_reqs: Default::default(),
+ opengl: Default::default(),
}
}
/// Sets how the backend should choose the OpenGL API and version.
- pub fn with_gl(mut self, request: GlRequest) -> HeadlessRendererBuilder {
- self.attribs.opengl.version = request;
+ pub fn with_gl(mut self, request: GlRequest) -> HeadlessRendererBuilder<'a> {
+ self.opengl.version = request;
self
}
@@ -43,14 +41,14 @@ impl HeadlessRendererBuilder {
///
/// The default value for this flag is `cfg!(ndebug)`, which means that it's enabled
/// when you run `cargo build` and disabled when you run `cargo build --release`.
- pub fn with_gl_debug_flag(mut self, flag: bool) -> HeadlessRendererBuilder {
- self.attribs.opengl.debug = flag;
+ pub fn with_gl_debug_flag(mut self, flag: bool) -> HeadlessRendererBuilder<'a> {
+ self.opengl.debug = flag;
self
}
/// Sets the robustness of the OpenGL context. See the docs of `Robustness`.
- pub fn with_gl_robustness(mut self, robustness: Robustness) -> HeadlessRendererBuilder {
- self.attribs.opengl.robustness = robustness;
+ pub fn with_gl_robustness(mut self, robustness: Robustness) -> HeadlessRendererBuilder<'a> {
+ self.opengl.robustness = robustness;
self
}
@@ -59,15 +57,15 @@ impl HeadlessRendererBuilder {
/// Error should be very rare and only occur in case of permission denied, incompatible system,
/// out of memory, etc.
pub fn build(self) -> Result<HeadlessContext, CreationError> {
- platform::HeadlessContext::new(self.attribs).map(|w| HeadlessContext { context: w })
+ platform::HeadlessContext::new(self.dimensions, &self.pf_reqs, &self.opengl)
+ .map(|w| HeadlessContext { context: w })
}
/// Builds the headless context.
///
/// The context is build in a *strict* way. That means that if the backend couldn't give
/// you what you requested, an `Err` will be returned.
- pub fn build_strict(mut self) -> Result<HeadlessContext, CreationError> {
- self.attribs.strict = true;
+ pub fn build_strict(self) -> Result<HeadlessContext, CreationError> {
self.build()
}
}