@@ -185,34 +185,37 @@ impl<D: Device, T> fmt::Debug for BufferHandle<D, T> {
185
185
}
186
186
}
187
187
188
- impl < T > BufferHandle < back :: GlDevice , T > {
188
+ impl < D : Device , T > BufferHandle < D , T > {
189
189
/// Create a type-safe BufferHandle from a RawBufferHandle
190
- pub fn from_raw ( handle : RawBufferHandle < back :: GlDevice > ) -> BufferHandle < back :: GlDevice , T > {
190
+ pub fn from_raw ( handle : RawBufferHandle < D > ) -> BufferHandle < D , T > {
191
191
BufferHandle {
192
192
raw : handle,
193
193
}
194
194
}
195
195
196
196
/// Cast the type this BufferHandle references
197
- pub fn cast < U > ( self ) -> BufferHandle < back :: GlDevice , U > {
197
+ pub fn cast < U > ( self ) -> BufferHandle < D , U > {
198
198
BufferHandle :: from_raw ( self . raw )
199
199
}
200
200
201
- /// Get the underlying GL name for this BufferHandle
202
- pub fn get_name ( & self ) -> back :: Buffer {
201
+ /// Get the underlying name for this BufferHandle
202
+ pub fn get_name ( & self ) -> < D as Device > :: Buffer {
203
203
self . raw . get_name ( )
204
204
}
205
205
206
+ /// Get the underlying raw Handle
207
+ pub fn raw ( & self ) -> RawBufferHandle < D > {
208
+ self . raw
209
+ }
210
+ }
211
+
212
+ // FIXME: These should be implemented over a generic `Device`, but we get a lifetime error
213
+ impl < T > BufferHandle < back:: GlDevice , T > {
206
214
/// Get the associated information about the buffer
207
215
pub fn get_info ( & self ) -> & BufferInfo {
208
216
self . raw . get_info ( )
209
217
}
210
218
211
- /// Get the underlying raw Handle
212
- pub fn raw ( & self ) -> RawBufferHandle < back:: GlDevice > {
213
- self . raw
214
- }
215
-
216
219
/// Get the number of elements in the buffer.
217
220
///
218
221
/// Fails if `T` is zero-sized.
0 commit comments