extern crate math2d;
extern crate direct2d;
extern crate direct3d11;
use direct2d::brush::SolidColorBrush;
use direct2d::{Device, DeviceContext, factory::Factory1};
use direct3d11::enums::CreateDeviceFlags;
use math2d::*;
#[test]
fn solid_color() {
let (_factory, context) = make_context();
for i in 0u32..(16 * 16 * 16) {
let color = Color {
r: ((i >> 8) & 0xF) as f32 / 15.0,
g: ((i >> 4) & 0xF) as f32 / 15.0,
b: ((i >> 0) & 0xF) as f32 / 15.0,
a: 1.0,
};
let brush = SolidColorBrush::create(&context)
.with_color(color)
.build()
.unwrap();
let brush_color = brush.color();
assert_eq!(color, brush_color);
}
}
fn make_context() -> (Factory1, DeviceContext) {
let (_, d3d, _) = direct3d11::device::Device::create()
.with_flags(CreateDeviceFlags::BGRA_SUPPORT)
.build()
.unwrap();
let factory = Factory1::new().unwrap();
let dev = Device::create(&factory, &d3d.as_dxgi()).unwrap();
let ctx = DeviceContext::create(&dev).unwrap();
(factory, ctx)
}