Comments (9)
This is going to involve some heavy refactoring, and I think it should wait until Rust has associated types. The problem is that the BackEnd
implementation conceptually defines all of the types that are needed to interact with it, but the trait itself lives in device
. So, device
needs types from the backend, the backend needs the trait from device
... it's more than the trait, though, it's most of the API. Without associated types, can't make any progress.
from gfx.
Could we create a mocked up trait specification to allow us to transition in the future?
from gfx.
@bjz I believe this is done, currently.
from gfx.
It isn't - it is currently in a separate directory, but not actually a separate crate: https://github.com/gfx-rs/gfx-rs/blob/master/src/device/lib.rs#L43
from gfx.
Ah, yes.
from gfx.
@bjz I believe you are working on this one?
Edit: is it still blocked?
from gfx.
I was working on it, but was blocked by the associated item stuff.
from gfx.
Posting your comment, assuming it was about this issue:
Arg, trying to get associated types working with handles
but I am running into issues
I end up needing to pass the Device as a type parameter around
and the CommandBuffer trait needs the handle types
so CommandBuffer needs Device as a type parameter
but that ends in type checker recursion and blowing up rustc's stack
😔
from gfx.
@bjz So you are running into a type dependency recursion? Come back to gitter, when you have a moment, to share more info. Perhaps, you could push your branch for me to check out.
from gfx.
Related Issues (20)
- Hitting `unreachable!` branch in `gfx-backend-vulkan` during swapchain creation, Void Linux, AMD ATI
- ```supports_family``` only available on iOS 13 HOT 4
- gfx_backend_gl and metal: can't find create HOT 3
- Link error: missing symbol _kCAGravityTopLeft on macOS HOT 3
- New Metal pipeline cache doesn't work properly on Dota2 + portability HOT 2
- Support dynamic array sizes on Metal HOT 1
- Black screen when --features=gl
- Use hasUnifiedMemory instead of isLowPower on Metal
- Entered unreachable code on vulkan create fence
- Errors from VVL on Nvidia HOT 10
- Screen doesn't get updated if gfx_device_gl::CommandBuffer::clear_color gets called HOT 1
- 3 build errors on Windows HOT 3
- LICENSE files in package subdirs
- create_surface failed with 'AndroidSurface failed: ERROR_NATIVE_WINDOW_IN_USE_KHR'
- pre-ll: Vertex & constant structs fields are re-ordered in rust 1.67 so don't work HOT 1
- Missing MESH_SHADER feature in mesh-shading example
- misaligned pointer in `queue::Queue::get` HOT 3
- pubg
- MTLGPUFamilyMac1 is deprecated HOT 1
- Tivel
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 gfx.