From ea4bf79ff71f2089beace873a629072ebe233608 Mon Sep 17 00:00:00 2001 From: Joshua Groves Date: Tue, 3 Mar 2020 00:34:24 -0330 Subject: [PATCH] Update readme --- README.md | 47 +++++++++++++++++++++++++++-------------------- logo.png | Bin 0 -> 37753 bytes 2 files changed, 27 insertions(+), 20 deletions(-) create mode 100644 logo.png diff --git a/README.md b/README.md index 1e3b044b42..8d5c6b69cc 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,15 @@ -## wgpu-rs + + +# wgpu-rs + [![Build Status](https://travis-ci.org/gfx-rs/wgpu-rs.svg)](https://travis-ci.org/gfx-rs/wgpu-rs) [![Crates.io](https://img.shields.io/crates/v/wgpu.svg)](https://crates.io/crates/wgpu) [![Docs.rs](https://docs.rs/wgpu/badge.svg)](https://docs.rs/wgpu) [![Matrix](https://img.shields.io/matrix/wgpu:matrix.org)](https://matrix.to/#/#wgpu:matrix.org) -This is an idiomatic Rust wrapper over [wgpu-core](https://github.com/gfx-rs/wgpu). It's designed to be suitable for general purpose graphics and computation needs of Rust community. It currently only works for the native platform, in the future aims to support WASM/Emscripten platforms as well. +wgpu-rs is an idiomatic Rust wrapper over [wgpu-core](https://github.com/gfx-rs/wgpu). It's designed to be suitable for general purpose graphics and computation needs of Rust community. + +Currently wgpu-rs works on native platforms, but [WASM support is currently being added](https://github.com/gfx-rs/wgpu-rs/issues/101) as well. ## Gallery @@ -13,46 +18,48 @@ This is an idiomatic Rust wrapper over [wgpu-core](https://github.com/gfx-rs/wgp ## Usage -### Running an example -All examples are located under the [examples](examples) directory. We are using the default syntax for running examples, as found in the [Cargo](https://doc.rust-lang.org/cargo/reference/manifest.html#examples) documentation. +### How to Run Examples + +All examples are located under the [examples](examples) directory. + +These examples use the default syntax for running examples, as found in the [Cargo](https://doc.rust-lang.org/cargo/reference/manifest.html#examples) documentation. For example, to run the `cube` example: ```bash cargo run --example cube ``` -#### Hello Compute +The `hello-triangle` and `hello-compute` examples show bare-bones setup without any helper code. For `hello-compute`, pass 4 numbers separated by spaces as arguments: -`hello-*` examples show barebones setup without any helper code. - -For "hello-compute", pass 4 numbers separated by spaces as arguments: ```bash cargo run --example hello-compute 1 2 3 4 ``` -More examples can be found under the [examples](examples) directory. - ## Friends Shout out to the following projects that work best with wgpu-rs: - - [wgpu_glyph](https://github.com/hecrj/wgpu_glyph) - for your text-y rendering needs - - [coffee](https://github.com/hecrj/coffee) - a whole 2D engine - - [iced](https://github.com/hecrj/iced) - a cross-platform GUI library - - [rgx](https://github.com/cloudhead/rgx) - a 2D graphics library - - [imgui-wgpu](https://github.com/Yatekii/imgui-wgpu-rs) - Dear ImGui interfacing - - [pixels](https://github.com/parasyte/pixels) - the easiest way to create a hardware-accelerated pixel frame buffer - - [kas](https://github.com/dhardy/kas) - tooKit Abstraction System - - [oxiditor](https://github.com/Ruddle/oxidator) - RTS game engine + +- [wgpu_glyph](https://github.com/hecrj/wgpu_glyph) - for your text-y rendering needs +- [coffee](https://github.com/hecrj/coffee) - a whole 2D engine +- [iced](https://github.com/hecrj/iced) - a cross-platform GUI library +- [rgx](https://github.com/cloudhead/rgx) - a 2D graphics library +- [imgui-wgpu](https://github.com/Yatekii/imgui-wgpu-rs) - Dear ImGui interfacing +- [pixels](https://github.com/parasyte/pixels) - the easiest way to create a hardware-accelerated pixel frame buffer +- [kas](https://github.com/dhardy/kas) - tooKit Abstraction System +- [oxiditor](https://github.com/Ruddle/oxidator) - RTS game engine Also, libraries that have support for wgpu-rs: - - [conrod](https://github.com/PistonDevelopers/conrod) - shader-based UI - - [lyon](https://github.com/nical/lyon) - a path tessellation library + +- [conrod](https://github.com/PistonDevelopers/conrod) - shader-based UI +- [lyon](https://github.com/nical/lyon) - a path tessellation library ## Development If you need to test local fixes to gfx-rs or other dependencies, the simplest way is to add a Cargo patch. For example, when working on DX12 backend on Windows, you can check out the "hal-0.2" branch of gfx-rs repo and add this to the end of "Cargo.toml": + ```toml [patch.crates-io] gfx-backend-dx12 = { path = "../gfx/src/backend/dx12" } gfx-hal = { path = "../gfx/src/hal" } ``` + If a version needs to be changed, you need to to do `cargo update -p gfx-backend-dx12`. diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..17f35634dbf9b2c8d02eafaeef8c9d4d71e15517 GIT binary patch literal 37753 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 F0RXSNqu~Gm literal 0 HcmV?d00001