machinamentum / caelina Goto Github PK
View Code? Open in Web Editor NEWAn OpenGL implementation for (N)3DS
An OpenGL implementation for (N)3DS
The lib should manage the device's framebuffers, enable querying of available displays and their resolutions, and potentially make it easier to port projects, and the lib itself, to other platforms.
Additionally, it might be an interesting idea to make a gamepad interface for cross-platform apps (like GLFW), however, this may be beyond the scope of the lib.
I would like to know if you are planning to change the opengl version of Caelina. I'm asking this because OpenGL 1.1 is a bit wrong, since the PICA200 supports OpenGL ES 1.0 (and most of OES 2). I'm also thinking about things such as texture combiners (https://www.opengl.org/wiki/Texture_Combiners) that were added only since OpenGL 1.3.
I'm also thinking about the texture clamping https://github.com/machinamentum/Caelina/blob/master/libcaelina/source/driver_3ds.cpp#L170 and many other things that are not available in ogl1.1.
I think that switching to OES1.1 however would be a good idea, and shouldn't involve much work.
GL_DST_ALPHA and GL_ONE_MINUS_DST_ALPHA not rendering correctly.
Values seem to be inverted.
EDIT: The driver never checks if enableBlend is even set, so effectively alpha blending is always enabled.
Not sure how to debug this as I have no idea what I'm doing.... anyway, compiles fine and runs fine, but the cube doesn't have the image on it.
vertex_lighting_3ds.vsh
implements a power function (calculating r0.x ^ r1.x
for lighting using a loop. This is fairly inefficient, and can be done a lot more easily by using the identity r0.x ^ r1.x = (2 ^ ld r0.x)^r1.x = 2 ^ (r1.x * ld r0.x)
(with ld the base-2 logarithm):
// NOTE: r2 is changed in this function
pow:
log r2.x, r0.x
mul r2.x, r2.x, r1.x
exp r0.x, r2.x
nop
end_pow:
Figured I'd just throw this out here ;)
Drawing using destination alpha values causes zero alpha values to draw as translucent black.
ninjhax2/tubehax/ironhax/oot3dhax/psxhax/boathax causes apps built using Caelina to hang on start up (unless consoleInit() is called) and introduces a few rendering bugs in CTRX
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.