mirror of
https://git.coom.tech/drummyfish/small3dlib.git
synced 2024-11-21 20:39:57 +01:00
Add depth to pixelinfo
This commit is contained in:
parent
bf9223c4c4
commit
6ff62a8995
2 changed files with 31 additions and 24 deletions
53
s3l.h
53
s3l.h
|
@ -112,26 +112,32 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#ifndef S3L_RESOLUTION_X
|
#ifndef S3L_RESOLUTION_X
|
||||||
#define S3L_RESOLUTION_X 640 //< Redefine to your screen x resolution.
|
#define S3L_RESOLUTION_X 640 ///< Redefine to your screen x resolution.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef S3L_RESOLUTION_Y
|
#ifndef S3L_RESOLUTION_Y
|
||||||
#define S3L_RESOLUTION_Y 480 //< Redefine to your screen y resolution.
|
#define S3L_RESOLUTION_Y 480 ///< Redefine to your screen y resolution.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef S3L_COMPUTE_DEPTH
|
||||||
|
#define S3L_COMPUTE_DEPTH 0 /**< Whether to compute depth for each pixel
|
||||||
|
(fragment). Some other options may turn this
|
||||||
|
on. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef S3L_PERSPECTIVE_CORRECTION
|
#ifndef S3L_PERSPECTIVE_CORRECTION
|
||||||
#define S3L_PERSPECTIVE_CORRECTION 0 /**< Specifies what type of perspective
|
#define S3L_PERSPECTIVE_CORRECTION 0 /**< Specifies what type of perspective
|
||||||
correction (PC) to use. Remember
|
correction (PC) to use. Remember
|
||||||
this is an expensive operation!
|
this is an expensive operation!
|
||||||
Possible values:
|
Possible values:
|
||||||
|
|
||||||
0: no PC, fastest but ugliest
|
0: no PC, fastest but ugliest
|
||||||
1: full (per-pixel) PC, nicest but
|
1: full (per-pixel) PC, nicest but
|
||||||
extremely expensive!
|
extremely expensive!
|
||||||
2: triangle subdivided PC, a
|
2: triangle subdivided PC, a
|
||||||
compromise between quality and
|
compromise between quality and
|
||||||
speed (TODO, not implemented)
|
speed (TODO, not implemented)
|
||||||
*/
|
*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef int32_t S3L_Unit; /**< Units of measurement in 3D space. There is
|
typedef int32_t S3L_Unit; /**< Units of measurement in 3D space. There is
|
||||||
|
@ -151,19 +157,19 @@ typedef int16_t S3L_ScreenCoord;
|
||||||
typedef uint16_t S3L_Index;
|
typedef uint16_t S3L_Index;
|
||||||
|
|
||||||
#ifndef S3L_NEAR
|
#ifndef S3L_NEAR
|
||||||
#define S3L_NEAR (S3L_FRACTIONS_PER_UNIT) /**< Distance of the near clipping
|
#define S3L_NEAR (S3L_FRACTIONS_PER_UNIT / 4) /**< Distance of the near
|
||||||
plane. */
|
clipping plane. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef S3L_FAST_LERP_QUALITY
|
#ifndef S3L_FAST_LERP_QUALITY
|
||||||
#define S3L_FAST_LERP_QUALITY 8 /**< Quality (scaling) of SOME linear
|
#define S3L_FAST_LERP_QUALITY 8 /**< Quality (scaling) of SOME linear
|
||||||
interpolations. 0 will most likely be
|
interpolations. 0 will most likely be
|
||||||
faster, but artifacts can occur for
|
faster, but artifacts can occur for
|
||||||
bigger tris, while higher values can fix
|
bigger tris, while higher values can fix
|
||||||
this -- in theory all higher values will
|
this -- in theory all higher values will
|
||||||
have the same speed (it is a shift
|
have the same speed (it is a shift
|
||||||
value), but it mustn't be too high to
|
value), but it mustn't be too high to
|
||||||
prevent overflow. */
|
prevent overflow. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define S3L_HALF_RESOLUTION_X (S3L_RESOLUTION_X >> 1)
|
#define S3L_HALF_RESOLUTION_X (S3L_RESOLUTION_X >> 1)
|
||||||
|
@ -346,6 +352,7 @@ typedef struct
|
||||||
S3L_Unit barycentric1; ///< Baryc. coord 1 (corresponds to 2nd vertex).
|
S3L_Unit barycentric1; ///< Baryc. coord 1 (corresponds to 2nd vertex).
|
||||||
S3L_Unit barycentric2; ///< Baryc. coord 2 (corresponds to 3rd vertex).
|
S3L_Unit barycentric2; ///< Baryc. coord 2 (corresponds to 3rd vertex).
|
||||||
S3L_Index triangleID;
|
S3L_Index triangleID;
|
||||||
|
S3L_Unit depth; ///< Depth (only if depth is turned on).
|
||||||
} S3L_PixelInfo; /**< Used to pass the info about a rasterized pixel
|
} S3L_PixelInfo; /**< Used to pass the info about a rasterized pixel
|
||||||
(fragment) to the user-defined drawing func. */
|
(fragment) to the user-defined drawing func. */
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#define S3L_RESOLUTION_X 640
|
#define S3L_RESOLUTION_X 640
|
||||||
#define S3L_RESOLUTION_Y 480
|
#define S3L_RESOLUTION_Y 480
|
||||||
|
|
||||||
#define S3L_PERSPECTIVE_CORRECTION 1
|
#define S3L_PERSPECTIVE_CORRECTION 0
|
||||||
|
|
||||||
#include "s3l.h"
|
#include "s3l.h"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue