this is bug free!

This commit is contained in:
shenjack 2023-03-28 19:16:54 +08:00
parent 2820e20d16
commit 1e4fcb48e9
2 changed files with 40 additions and 13 deletions

View File

@ -10,7 +10,7 @@ pub mod python_class {
use pyo3::prelude::*; use pyo3::prelude::*;
use crate::math::matrix::{Matrix3, Matrix4}; use crate::math::matrix::{Matrix3, Matrix4};
use crate::math::vector::{Vector2, Vector3, Vector4}; use crate::math::vector::{Vector2, Vector3, Vector4, VectorTrait};
#[pyclass(name = "Vector2")] #[pyclass(name = "Vector2")]
pub struct PyVector2 { pub struct PyVector2 {
@ -50,6 +50,7 @@ pub mod python_class {
fn __radd__(&self, other: &PyAny) -> Self; fn __radd__(&self, other: &PyAny) -> Self;
fn __eq__(&self, other: &Self) -> bool; fn __eq__(&self, other: &Self) -> bool;
fn __ne__(&self, other: &Self) -> bool; fn __ne__(&self, other: &Self) -> bool;
// fn rotate
} }
/// 这是一个用来自动给 impl xxx for xxx 的块去掉 trait 部分的宏 /// 这是一个用来自动给 impl xxx for xxx 的块去掉 trait 部分的宏
@ -69,5 +70,29 @@ pub mod python_class {
data: self.data + other.data, data: self.data + other.data,
}; };
} }
fn __sub__(&self, other: &Self) -> Self {
return Self {
data: self.data - other.data,
};
}
fn __mul__(&self, other: &Self) -> Self {
return Self {
data: self.data * other.data,
};
}
fn __truediv__(&self, other: &Self) -> Self {
return Self {
data: self.data / other.data,
};
}
fn __floordiv__(&self, other: &Self) -> Self {
return Self {
data: self.data.floordiv(&other.data),
};
}
} }
} }

View File

@ -161,7 +161,9 @@ impl Sprite {
batch = batch_; batch = batch_;
} }
// 385 // 385
let group = sprite_group_class.call1((texture, blend_src, blend_dest, program, group)); let group = sprite_group_class
.call1((texture, blend_src, blend_dest, program, group))
.unwrap();
Sprite { Sprite {
subpixel, subpixel,
@ -188,17 +190,17 @@ impl Sprite {
} }
} }
/// python code: // python code:
/// 390: // 390:
/// def _create_vertex_list(self): // def _create_vertex_list(self):
/// texture = self._texture // texture = self._texture
/// self._vertex_list = self.program.vertex_list( // self._vertex_list = self.program.vertex_list(
/// 1, GL_POINTS, self._batch, self._group, // 1, GL_POINTS, self._batch, self._group,
/// position=('f', (self._x, self._y, self._z)), // position=('f', (self._x, self._y, self._z)),
/// size=('f', (texture.width, texture.height, 1, 1)), // size=('f', (texture.width, texture.height, 1, 1)),
/// color=('Bn', self._rgba), // color=('Bn', self._rgba),
/// texture_uv=('f', texture.uv), // texture_uv=('f', texture.uv),
/// rotation=('f', (self._rotation,))) // rotation=('f', (self._rotation,)))
// pub fn _create_vertex_list(&mut self) -> PyResult<()> { // pub fn _create_vertex_list(&mut self) -> PyResult<()> {
// let texture = self.texture.as_ref()?; // let texture = self.texture.as_ref()?;