Comments (6)
have you tried
glfw.window_hint(WindowHint::ClientApi(ClientApiHint::NoApi));
just before creating the windows. This fixed some issues on some platforms.
from wgpu.
That's probably todo with
state.window.make_current();
only some calls can be done without an api (typically because the other api can do this). For example:
window.swap_buffers();
does basically the same thing as
surface_texture.present();
though on the internal API (in this case OpenGL).
Also this conversation should probably be moved to glfw-rs as this is mostly a glfw issue.
Questions I have:
- Why use Surface Target Unsafe? Couldn't you use a
Arc<Window>
or use thewindow.render_context()
function? - Why
glfw.set_swap_interval(glfw::SwapInterval::Sync(1));
? Wgpu has it's own presentation mode. - Why both
state.window.swap_buffers();
anddrawable.present();
don't these do the same thing?
Sorry if these seem like a lot of suggestions, I'm just trying to work out the code.
from wgpu.
Copying the code onto my machine and making this the run function
let mut glfw = glfw::init(fail_on_errors!())
.unwrap();
glfw.window_hint(WindowHint::ClientApi(ClientApiHint::NoApi));
let (mut window, events) =
glfw.create_window(
800, 600, "It's SNA time.",
glfw::WindowMode::Windowed).unwrap();
let mut state = State::new(&mut window).await;
//state.window.set_all_polling(true);
//state.window.make_current();
//glfw.set_swap_interval(glfw::SwapInterval::Sync(1));
while !state.window.should_close() {
glfw.poll_events();
for (_, event) in glfw::flush_messages(&events) {
match event {
glfw::WindowEvent::Key(Key::Escape, _, Action::Press, _) => {
state.window.set_should_close(true)
}
_ => {}
}
}
match state.render() {
Ok(_) => {},
Err(e) => eprintln!("{:?}", e),
}
//state.window.swap_buffers();
}
seems to fix the issue (commented out code is both not required and unsupported). This is definitely a GLFW documentation issue. I'm working on a pull request to fix the docs.
from wgpu.
Thank you! By the way, there is a safe way of creating a surface:
instance.create_surface(window.render_context()).unwrap();
from wgpu.
I put it right before creating the window, but it returns a new error:
GLFW Error: Cannot make current with a window that has no OpenGL or OpenGL ES context
from wgpu.
OMG, it works now! Thank you so much!!!
from wgpu.
Related Issues (20)
- Possible f32 to u32 conversion bug HOT 3
- Implement adapter expiry
- Naga fails to build: "unresolved import `back::continue_forward`" HOT 1
- Performance regression from "Replace fence with semaphore"
- Point and line primitives must not have depth bias
- Queue::write_buffer seems to resize the buffer in question (?) HOT 2
- wgpu-core: panic if more then 8 color attachment passed
- `wgpu::Buffer` implementing `PartialEq`, `Eq`, and `Hash` HOT 4
- can't compile compute shader HOT 8
- Setting a pipeline-overridable shader constant to `f64::INFINITY` results in a crash on certain platforms HOT 4
- In OpenGL backend, attempting to render to a multisampled texture with the usages `RENDER_ATTACHMENT | TEXTURE_BINDING` fails HOT 5
- Using `@builtin(sample_mask)` in a fragment shader with OpenGL panics due to a naga translation error HOT 1
- Restrict usage of `f64` with some built-in functions HOT 2
- Maximum dynamic offset limit is incorrect per the spec HOT 6
- get_bind_group_layout fails when layout is auto HOT 1
- Memory write concurrency guarantees HOT 1
- regression: compute example doesn't work on wayland HOT 12
- Mip level support with Metal not working? HOT 1
- Enable `clippy::tests_outside_test_module` lint HOT 2
- Took more than 10minutes to create compute pipeline on Linux HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wgpu.