From 23dd7ace18e56241c1c0c6ee6e8e0afe417efedb Mon Sep 17 00:00:00 2001 From: Fries Date: Wed, 13 Mar 2024 21:49:35 -0700 Subject: [PATCH] Parse a cube .obj file to display. Right now the implementation is extremely unoptimized and draw call heavy as I just copy and pasted that from the docs for tiny obj loader but added gl calls. --- .vscode/launch.json | 116 +++++++++++++++++++------- cube.cc | 145 +++++++++++++++++++++++++++++++++ engine.cc | 6 +- engine.hh | 4 +- meson.build | 18 +++- romdisk/cube.mtl | 2 + romdisk/cube.obj | 45 ++++++++++ romdisk/meson.build | 24 ++++++ romdisk/sanic.png | Bin 0 -> 45586 bytes subprojects/.gitignore | 3 + subprojects/tinyobjloader.wrap | 8 ++ 11 files changed, 334 insertions(+), 37 deletions(-) create mode 100644 cube.cc create mode 100644 romdisk/cube.mtl create mode 100644 romdisk/cube.obj create mode 100644 romdisk/meson.build create mode 100644 romdisk/sanic.png create mode 100644 subprojects/.gitignore create mode 100644 subprojects/tinyobjloader.wrap diff --git a/.vscode/launch.json b/.vscode/launch.json index a0a74ee..7e005d7 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,33 +1,91 @@ { "configurations": [ - { - "name": "(gdb) Launch gl.elf", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/gl.elf", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "miDebuggerPath": "/opt/toolchains/dc/sh-elf/bin/sh-elf-gdb", - "miDebuggerServerAddress": "localhost:3263", - "debugServerPath": "/usr/bin/flycast", - "debugServerArgs": "${workspaceFolder}/build/gl.elf", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - }, - { - "description": "Set SuperH architechture", - "text": "set architecture sh4" - } - ], - "avoidWindowsConsoleRedirection": false, - "internalConsoleOptions": "openOnSessionStart" - } + { + "name": "(gdb) Launch gl.elf", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/build/gl.elf", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerPath": "/opt/toolchains/dc/sh-elf/bin/sh-elf-gdb", + "miDebuggerServerAddress": "localhost:3263", + "debugServerPath": "/usr/bin/flycast", + "debugServerArgs": "${workspaceFolder}/build/gl.elf", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set SuperH architechture", + "text": "set architecture sh4" + } + ], + "avoidWindowsConsoleRedirection": false, + "internalConsoleOptions": "openOnSessionStart" + }, + { + "name": "(gdb) Launch cube.elf", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/build/cube.elf", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerPath": "/opt/toolchains/dc/sh-elf/bin/sh-elf-gdb", + "miDebuggerServerAddress": "localhost:3263", + "debugServerPath": "/usr/bin/flycast", + "debugServerArgs": "${workspaceFolder}/build/cube.elf", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set SuperH architechture", + "text": "set architecture sh4" + } + ], + "avoidWindowsConsoleRedirection": false, + "internalConsoleOptions": "openOnSessionStart" + }, + { + "name": "(gdb, lxdream-nitro) Launch cube.elf", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/build/cube.elf", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerPath": "/opt/toolchains/dc/sh-elf/bin/sh-elf-gdb", + "miDebuggerServerAddress": "localhost:3263", + "debugServerPath": "/home/user/Downloads/lxdream-nitro/builddir/lxdream-nitro", + "debugServerArgs": "-d -g 3263 -e ${workspaceFolder}/build/cube.elf", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set SuperH architechture", + "text": "set architecture sh4" + } + ], + "avoidWindowsConsoleRedirection": false, + "internalConsoleOptions": "openOnSessionStart" + } ] } diff --git a/cube.cc b/cube.cc new file mode 100644 index 0000000..1064663 --- /dev/null +++ b/cube.cc @@ -0,0 +1,145 @@ +#include +#include +#include +#include +#include +#include + +#include +#include "engine.hh" + +class Cube : public Engine { + unsigned int texture; + tinyobj::ObjReader reader; + + bool parseObj(std::string objFile, tinyobj::ObjReader& reader); + void cube(); + void displayStuff(); + void gameLoop() override { displayStuff(); } + void initScreen() override; + void model(); +}; + +void Cube::model() { + const tinyobj::attrib_t& attrib = reader.GetAttrib(); + auto& shapes = reader.GetShapes(); + angle += 1.0f; + glRotatef(angle, 1.0f, 0.0f, 1.0f); + + int drawCalls = 0; + + for (size_t s = 0; s < shapes.size(); s++) { + // Loop over faces(polygon) + size_t index_offset = 0; + for (size_t f = 0; f < shapes[s].mesh.num_face_vertices.size(); f++) { + size_t fv = size_t(shapes[s].mesh.num_face_vertices[f]); + + glBegin(GL_TRIANGLES); + // Loop over vertices in the face. + for (size_t v = 0; v < fv; v++) { + // access to vertex + tinyobj::index_t idx = shapes[s].mesh.indices[index_offset + v]; + tinyobj::real_t vx = + attrib.vertices[3 * size_t(idx.vertex_index) + 0]; + tinyobj::real_t vy = + attrib.vertices[3 * size_t(idx.vertex_index) + 1]; + tinyobj::real_t vz = + attrib.vertices[3 * size_t(idx.vertex_index) + 2]; + glVertex3f(vx, vy, vz); + drawCalls += 1; + + + // Check if `normal_index` is zero or positive. negative = no + // normal data + if (idx.normal_index >= 0) { + tinyobj::real_t nx = + attrib.normals[3 * size_t(idx.normal_index) + 0]; + tinyobj::real_t ny = + attrib.normals[3 * size_t(idx.normal_index) + 1]; + tinyobj::real_t nz = + attrib.normals[3 * size_t(idx.normal_index) + 2]; + glNormal3f(nx, ny, nz); + drawCalls += 1; + } + + // Check if `texcoord_index` is zero or positive. negative = no + // texcoord data + if (idx.texcoord_index >= 0) { + tinyobj::real_t tx = + attrib.texcoords[2 * size_t(idx.texcoord_index) + 0]; + tinyobj::real_t ty = + attrib.texcoords[2 * size_t(idx.texcoord_index) + 1]; + glTexCoord2f(tx, ty); + drawCalls += 1; + } + } + index_offset += fv; + + glEnd(); + } + } + printf("Draw Calls: %i\n", drawCalls); + drawCalls = 0; + + // glDrawArrays(GL_QUADS, 0, susSize); +} + +bool Cube::parseObj(std::string objFile, tinyobj::ObjReader& reader) { + tinyobj::ObjReaderConfig readerConfig; + readerConfig.mtl_search_path = "./"; + if (!reader.ParseFromFile(objFile, readerConfig)) { + if (!reader.Error().empty()) { + printf("TinyOBJReader: %s\n", reader.Error().c_str()); + return false; + } + } + return true; +} + +void Cube::displayStuff() { + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glLoadIdentity(); + glTranslatef(0.0f, 0.0f, -5.0f); + glRotatef(90, 0.0f, 1.0f, 0.5f); + model(); + glKosSwapBuffers(); +} + +void Cube::initScreen() { + glKosInit(); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(45.0f, 640.0f / 480.0f, 0.1f, 100.0f); + glMatrixMode(GL_MODELVIEW); + glEnable(GL_TEXTURE_2D); + glEnable(GL_DEPTH_TEST); + glFrontFace(GL_CW); + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + + int width, height, nr_channels; + unsigned char* data = + stbi_load("/rd/sanic.png", &width, &height, &nr_channels, 0); + + if (data) { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, + GL_UNSIGNED_BYTE, data); + glGenerateMipmap(GL_TEXTURE_2D); + } else { + printf("Texture failed to load.\n"); + } + + stbi_image_free(data); + + if (!parseObj("/rd/cube.obj", reader)) return; +} + +int main() { + Cube engine; + engine.initializeEngine(); + engine.initializeGameLoop(); +} diff --git a/engine.cc b/engine.cc index 26d2c67..1eab9c3 100644 --- a/engine.cc +++ b/engine.cc @@ -1,3 +1,5 @@ +#define TINYOBJLOADER_IMPLEMENTATION + #include "engine.hh" #include @@ -65,9 +67,7 @@ void Engine::pressButton(cont_state_t* controller_state, int button, } void Engine::glVertex3fNormalized(float x, float y, float z) { - int xSize, ySize; - xSize = 640; - ySize = 480; + constexpr int xSize = 640, ySize = 480; glVertex3f(x * xSize, y * ySize, z); } diff --git a/engine.hh b/engine.hh index 3d4e0f4..9533bba 100644 --- a/engine.hh +++ b/engine.hh @@ -8,7 +8,7 @@ class Engine { protected: - const float microSecond = 0.000001f; + static constexpr float microSecond = 0.000001f; float angle = 0; float deltaTime = 1.0 / 60.0; @@ -17,7 +17,7 @@ class Engine { bool thirtyfps; unsigned int buttonsPressed; - void initScreen(); + virtual void initScreen(); void printSystemInformation(); virtual void gameLoop(){}; void pressButton(cont_state_t* controller_state, int button, diff --git a/meson.build b/meson.build index a6a3a2a..a79a5f4 100644 --- a/meson.build +++ b/meson.build @@ -9,12 +9,18 @@ kosportsinc = include_directories('/opt/toolchains/dc/kos-ports/include') GL = cc.find_library('GL', required: true) math = cc.find_library('m', required: true) +stb_image = cc.find_library('stb_image', required: true) +subdir('romdisk') +tinyobjloader = subproject('tinyobjloader') +tinyobjloader_dep = tinyobjloader.get_variable('tinyobjloader_dep') # pcx = cc.find_library('pcx', required: true) # kosutils = cc.find_library('kosutils', required: true) deps = [ GL, - math + math, + stb_image, + tinyobjloader_dep ] incdirs = [ @@ -24,5 +30,11 @@ incdirs = [ kosportsinc ] -executable('hello.elf', ['hello.cc', 'engine.cc'], dependencies: deps, include_directories: incdirs) -executable('gl.elf', ['gl.cc', 'engine.cc'], dependencies: deps, include_directories: incdirs) +engine = static_library('engine', ['engine.cc'], dependencies: deps, include_directories: incdirs) +engine_dep = declare_dependency(link_with: engine, include_directories: incdirs) + +deps += [engine_dep] + +executable('hello.elf', ['hello.cc'], dependencies: deps, include_directories: incdirs) +executable('gl.elf', ['gl.cc'], dependencies: deps, include_directories: incdirs) +executable('cube.elf', ['cube.cc', romdsk_o], dependencies: deps, include_directories: incdirs) diff --git a/romdisk/cube.mtl b/romdisk/cube.mtl new file mode 100644 index 0000000..763e0ab --- /dev/null +++ b/romdisk/cube.mtl @@ -0,0 +1,2 @@ +# Blender 4.0.2 MTL File: 'None' +# www.blender.org diff --git a/romdisk/cube.obj b/romdisk/cube.obj new file mode 100644 index 0000000..ba883db --- /dev/null +++ b/romdisk/cube.obj @@ -0,0 +1,45 @@ +# Blender 4.0.2 +# www.blender.org +mtllib cube.mtl +o Cube +v -1.000000 -1.000000 1.000000 +v -1.000000 1.000000 1.000000 +v -1.000000 -1.000000 -1.000000 +v -1.000000 1.000000 -1.000000 +v 1.000000 -1.000000 1.000000 +v 1.000000 1.000000 1.000000 +v 1.000000 -1.000000 -1.000000 +v 1.000000 1.000000 -1.000000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vt 0.625000 0.000000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +s 0 +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/2/2 +f 8/6/3 5/7/3 7/5/3 +f 6/8/4 1/9/4 5/7/4 +f 7/5/5 1/10/5 3/11/5 +f 4/12/6 6/8/6 8/6/6 +f 2/1/1 4/4/1 3/2/1 +f 4/4/2 8/6/2 7/5/2 +f 8/6/3 6/8/3 5/7/3 +f 6/8/4 2/13/4 1/9/4 +f 7/5/5 5/7/5 1/10/5 +f 4/12/6 2/14/6 6/8/6 diff --git a/romdisk/meson.build b/romdisk/meson.build new file mode 100644 index 0000000..ded6997 --- /dev/null +++ b/romdisk/meson.build @@ -0,0 +1,24 @@ +romdiskcomp = find_program('/opt/toolchains/dc/kos/utils/genromfs/genromfs') +bin2o = find_program('/opt/toolchains/dc/kos/utils/bin2o/bin2o') +cc = find_program('/opt/toolchains/dc/sh-elf/bin/sh-elf-gcc') +kos_libs =['-L/opt/toolchains/dc/kos/lib/dreamcast','-L/opt/toolchains/dc/kos/addons/lib/dreamcast','-L/opt/toolchains/dc/kos/../kos-ports/lib'] + +romdisk_path = join_paths(meson.current_source_dir()) + +romdisk_img = custom_target('romdisk.img', + output : 'romdisk.img', + build_always_stale: true, + command: [ + romdiskcomp, '-f', '@OUTPUT@', '-d', romdisk_path, '-v', '-x', '.svn', '-x', '.keepme', '-x', 'meson.build' + ]) + +romdsk = custom_target('romdisk_tmp.o', + output : 'romdisk_tmp.o', + input: [romdisk_img], + command: [ + bin2o, '@INPUT@', 'romdisk', '@OUTPUT@' + ]) + +romdsk_o = custom_target('romdisk.o', output: 'romdisk.o', input: [romdsk], command: [ + cc, '-o', '@OUTPUT@', '-r', '@INPUT@', '-Wl,--whole-archive', kos_libs, '-lromdiskbase' +]) diff --git a/romdisk/sanic.png b/romdisk/sanic.png new file mode 100644 index 0000000000000000000000000000000000000000..5677e21874df0c5fa0352dc079ed18fa3d5e9eb3 GIT binary patch literal 45586 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 z

$L7`^&_nCSj&_?MB-D$wuxZVBz1ZQ*7ed!oNAqYVRitcB_o0ROW0lr0`3TJNX! ztR4|(6N0fLGbMhp9l&fbd{$dRP!&4j1^)c0LUnxrGgq#PzLW`GZ`f0*g^Q`zn8@ad zTsSs+>pQYH#;rPkZ1?M85h9-^8_f06Y-@>s?6_*Fw!?|{W7p9C#Kyvw9f3+6O>%zo_E)u~YI!G! zGpCfofSGV{WYsd1=J2Dn@ZpxH&g9yYU~70690D3O#@XCChqhI>^-%_zmJ$(#vLS;j z-U+Qe_Fx0C+%CBJ`Yj2q0fI_ac+G>F3HSZBAIpQw?){D+*V@8A=j!5?d>q87|=|@EK}KKW+yR;W)uzkvR}q$8SYYVGCL-pPMX;onV>P* zK(G=uNj3|}^Ode{sIEx`Np#^mDZ$|*p=U8GqzW#vzJ0l!Jq+qQ;?m+RUtkOZo7W`g zqCb6IsdijFUS+MK(f*bq&;}DnZ#c(fatoKHriU>P)bqV3Hn2@0Ln}JC5=Su5;;1UI zs*1!9|IG>qWo+hstyE-~xK=~L)^R6z{R~O{dUjFmez9s|=t$Ca|6#2SI%~6LCnD3+ z_{L>-ZRBOpk&KrHVU@w$n8d6uqF+hLxeqUHN?=RtxF?7HjB)V3`8P9i&{7(m^AP`u zWsie-=W+FRi3Y0T92=DetdJ=Ayy&SY(=Lm#)RdE4xp((s{?6;-H>M(Z{x*1qriWvp zgOmnRYWm+?KKtm}FMFKJiM_(!oQaLUZ@UrJ44b`VzkziyqfcLsh#-*G($;j;80?xw zg}KWcbM4O>v>l~8v9{hYAD0X(trwHv?vPV9;)}EFp6<`N4A-qMf}84ay%R918gx>s z`8(>1M^Q7^{brTdGdv8r8;16SqXIvwFe*N;30y8yN%8_qM4+H_-9hq~Isy+J!hdK~ zgep@iz~YADR}b9>h*QRLl1W&`_;RaewJJ3-OVy2WKzv&u>clCm&MFnyF{J!ZXQnPa zo65Yce>21^*BcUD+tOv>B__}tHjVOmvMng;=i#PQ~PnW zY@KcN+K$utp_cE{624v-YGEZ;w{=7yt{j-*8BiYZy3V!zp!E1!-ztAa%KFb2B+_qQ_+bE(HdQ zZi_J+M~9>tY}=j4K)5<^X=J2L3j{Yz-ppv!aW=$G4$j8uAFe)A*l>a{a1TxfEx5pp zGG^X@!B(J`|5 zP=KcAf{m}G<9*0vgbvLsUfvG~g$BXu6*I7b>yd}-6*bp><7beztpTN>*rJT&_E$-I z#8&NY3t95r^U<|UZbc6-G@0Qna}n|YoVY5jld2j~kUPBgY0g1zp|_umiZH3eM=F$I z1I4%&7+R(@X@0l!7H1n`;cb6wh)n!4}TN3Sv~L-E3`2G^(8DZ?vJ_YZl-ul$Vuz@sQ&76?&}_Pf^!dFJe7hI?CTeRh zsvyFeQOZqpUlK<%BtZaeI-Zc_AOVWfgjntE-K^kv@|DLN7&f{FkJILtd{G~JDOj6z zA!md?>cR=cKu-^WmJWi8j-T@CUA`ZftA8+8y!LFOw2|#vjAE9NI zpgE|FxyiR6N~9hR&h_TFsbsjNI;S4YB<3~fm4)j|j2o`_k8&j)q!On{@QM94 zdIh|CI66%-Ix?w=8>|KpP#9}f`C*&qR#xtX