Fix segfault (don't pass pointers between functions in different SDL versions), minor refactor
[?]
Jul 4, 2021, 10:19 PM
E742MTJAS6KZGXIFVCZMKREGQK34LA45VBIT4E7ODBL7J64FKJFACDependencies
- [2]
6AXPZL5PTry to offload tight loop to rust (for now it segfaults) - [3]
QBDHX7BHAdd a makefile to express python dependencies since pipenv doesn't like tensorflow - [4]
ROQCAPZJBegin function for showing the map (for now just opens SDL window) - [5]
ZRPV3GAJModel trainer: Add function to make tensor of cartesian coordinates for drawing the map (equirectangular projection) - [6]
IGYI5RVVFigure out how to draw on the sdl2 window - [7]
VKA5CCGCAdd pysdl2 to the trainmodel dependencies so I'll be able to visualize what's going on. - [*]
SXR7KEVOInitial commit - [*]
X5U7KRUIParse some of the data into tensors
Change contents
- file addition: .ignore[9.13]
*.so*.dylib - edit in trainmodel/src/drawmap.py at line 3
import os - edit in trainmodel/src/drawmap.py at line 7
from . import nativehelpers as helpers - edit in trainmodel/src/drawmap.py at line 10
# Use equirectangular projection - edit in trainmodel/src/drawmap.py at line 17
print("rendered")print(image)print(image.contents)print("pixels: " + hex(image.contents.pixels))print(ctypes.cast(image.contents.pixels, ctypes.POINTER(ctypes.c_uint32)).contents) - edit in trainmodel/src/drawmap.py at line 18
print("blitted") - edit in trainmodel/src/drawmap.py at line 41
helpers = ctypes.cdll.LoadLibrary(os.path.dirname(os.path.realpath(__file__)) + '/helpers.so')helpers.render_tensor.argtypes = [ctypes.c_void_p, ctypes.c_int, ctypes.c_int, ctypes.c_int]helpers.render_tensor.restype = ctypes.POINTER(sdl2.surface.SDL_Surface) - edit in trainmodel/src/drawmap.py at line 43
- replacement in trainmodel/src/helpers.rs at line 33
#[link(name = "SDL")]#[link(name = "SDL2")] - edit in trainmodel/src/helpers.rs at line 52
println!("surface: {:?}, pixels: {:?}, w: {}, h: {}", surface, unsafe { (*surface).pixels }, unsafe { (*surface).w }, unsafe { (*surface).h }); - edit in trainmodel/src/helpers.rs at line 96
println!("Surface = {:?}, pixels = {:?}", surface, unsafe { (*surface).pixels }); - file addition: nativehelpers.py[10.6]
import ctypesimport osimport platformimport sdl2native = ctypes.cdll.LoadLibrary(os.path.dirname(os.path.realpath(__file__)) + '/helpers.' + ('dylib' if platform.system() == 'Darwin' else 'so'))native.render_tensor.argtypes = [ctypes.c_void_p, ctypes.c_int, ctypes.c_int, ctypes.c_int]native.render_tensor.restype = ctypes.POINTER(sdl2.surface.SDL_Surface)render_tensor = native.render_tensor - replacement in trainmodel/Makefile at line 1
setup: venv src/helpers.soifeq ($(shell uname -s),Darwin)SO_SUFFIX = dylibelseSO_SUFFIX = soendifsetup: venv src/helpers.$(SO_SUFFIX) - replacement in trainmodel/Makefile at line 16
src/helpers.so: src/helpers.rsrustc --crate-name helpers --edition=2018 src/helpers.rs -o src/helpers.so --crate-type cdylib --emit=link -C embed-bitcode=no -C link-args="$$(sdl2-config --libs)"src/helpers.$(SO_SUFFIX): src/helpers.rsrustc --crate-name helpers --edition=2018 src/helpers.rs -o src/helpers.$(SO_SUFFIX) --crate-type cdylib --emit=link -C embed-bitcode=no