Browse Source

optimisation small

master
e-dt 4 years ago
parent
commit
67ec86d3f7
  1. 16
      src/main.rs

16
src/main.rs

@ -7,8 +7,9 @@ struct Apr {
col: i32, col: i32,
board: Vec<Vec<u8>>, board: Vec<Vec<u8>>,
grid: Mesh, grid: Mesh,
should_update_grid: bool,
// Your state here... // Your state here...
__TEST_state : usize __TEST_state: usize
} }
fn make_grid(ctx: &mut Context, r: i32, c: i32, board: &[Vec<u8>]) -> GameResult<Mesh> { fn make_grid(ctx: &mut Context, r: i32, c: i32, board: &[Vec<u8>]) -> GameResult<Mesh> {
@ -65,13 +66,14 @@ impl Apr {
col: c, col: c,
grid: make_grid(_ctx, r, c, board.as_slice()).unwrap(), grid: make_grid(_ctx, r, c, board.as_slice()).unwrap(),
board: board, board: board,
__TEST_state : 0, should_update_grid: false,
__TEST_state: 0,
} }
} }
fn set_colour(&mut self, ctx : &mut Context, r : usize, c : usize, col : u8) -> GameResult<()> { fn set_colour(&mut self, r : usize, c : usize, col : u8) -> GameResult<()> {
self.board[r][c] = col; self.board[r][c] = col;
self.grid = make_grid(ctx, self.row, self.col, self.board.as_slice())?; self.should_update_grid = true;
Ok(()) Ok(())
} }
} }
@ -83,7 +85,7 @@ impl EventHandler for Apr {
for x in 0..self.row*self.col/5 { for x in 0..self.row*self.col/5 {
let c = self.__TEST_state % self.col as usize; let c = self.__TEST_state % self.col as usize;
let r = (self.__TEST_state / self.row as usize) % self.row as usize; let r = (self.__TEST_state / self.row as usize) % self.row as usize;
self.set_colour(_ctx, r, c, (self.board[r][c] + 1) % 8)?; self.set_colour(r, c, (self.board[r][c] + 1) % 8)?;
self.__TEST_state += 1; self.__TEST_state += 1;
} }
Ok(()) Ok(())
@ -93,6 +95,10 @@ impl EventHandler for Apr {
graphics::clear(ctx, Color::new(0.5, 0.5, 0.5, 1.0)); graphics::clear(ctx, Color::new(0.5, 0.5, 0.5, 1.0));
let drawparams = graphics::DrawParam::new(); let drawparams = graphics::DrawParam::new();
if self.should_update_grid {
self.grid = make_grid(ctx, self.row, self.col, self.board.as_slice())?;
self.should_update_grid = false;
}
graphics::draw(ctx, &self.grid, drawparams)?; graphics::draw(ctx, &self.grid, drawparams)?;
// Draw code here... // Draw code here...
graphics::present(ctx) graphics::present(ctx)

Loading…
Cancel
Save