/programs/bcc32/examples/tinygl_1/Makefile |
---|
0,0 → 1,19 |
# Path to /programs |
SVN_PROGR:=../../.. |
# Path to /programs/bcc32 |
SVN_BCC32:=$(SVN_PROGR)/bcc32 |
# Path to t2fasm |
T2FASM:=$(SVN_BCC32)/t2fasm |
# Path to include |
INCLUDE:=$(SVN_BCC32)/include |
# Path to Bin folder |
KOS32_BCC:=/home/autobuild/borlandcpp/bin |
# Filename without .cpp |
FILENAME:=tinygl_1 |
include $(SVN_BCC32)/Makefile_app |
/programs/bcc32/examples/tinygl_1/tinygl_1.cpp |
---|
0,0 → 1,92 |
#include <kolibri.h> |
#include <kos_heap.h> |
#include <load_lib.h> |
#include <l_tinygl.h> |
using namespace Kolibri; |
const char header[] = "Test tinygl library, [<-] and [->] - rotate"; |
char library_path[2048]; |
namespace Kolibri{ |
char CurrentDirectoryPath[2048]; |
} |
TinyGLContext ctx1; |
float angle_z = 0.0, delt_size = 3.0; |
void draw_3d() |
{ |
glClear(GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT); //очистим буфер цвета и глубины |
glPushMatrix(); |
glRotatef(angle_z,0.0,0.0,1.0); |
glColor3f(1.0, 0.0, 0.0); |
glBegin(GL_TRIANGLES); |
glColor3f(0.0, 0.0, 1.0); |
glVertex3f(0.0, 0.5, 0.1); |
glVertex3f(0.475, 0.823, 0.1); |
glVertex3f(0.433, 0.25, 0.1); |
glColor3f(0.0, 1.0, 0.0); |
glVertex3f(0.5, 0.0, 0.1); |
glVertex3f(0.823,-0.475, 0.1); |
glVertex3f(0.25, -0.433, 0.1); |
glColor3f(1.0, 0.0, 0.0); |
glVertex3f(0.0, -0.5, 0.1); |
glVertex3f(-0.475,-0.823,0.1); |
glVertex3f(-0.433,-0.25, 0.1); |
glVertex3f(-0.5, 0.0, 0.1); |
glColor3f(1.0, 1.0, 0.0); |
glVertex3f(-0.823, 0.475, 0.1); |
glColor3f(1.0, 1.0, 1.0); |
glVertex3f(-0.25, 0.433, 0.1); |
glEnd(); |
glPopMatrix(); |
} |
bool KolibriOnStart(TStartData &kos_start, TThreadData /*th*/) |
{ |
kos_start.Left = 10; |
kos_start.Top = 40; |
kos_start.Width = 330; |
kos_start.Height = 275; |
kos_start.WinData.WindowColor = 0xd0d0d0; |
kos_start.WinData.WindowType = 0x33; // 0x34 - fixed, 0x33 - not fixed |
kos_start.WinData.Title = header; |
if(LoadLibrary("tinygl.obj", library_path, "/sys/lib/tinygl.obj", &import_tinygl)) |
{ |
kosglMakeCurrent(0,0,kos_start.Width,kos_start.Height,&ctx1); |
glEnable(GL_DEPTH_TEST); |
glClearColor(0.2,0.0,0.2,0.0); |
draw_3d(); |
return true; |
} |
else return false; |
} |
void KolibriOnPaint(void) |
{ |
kosglSwapBuffers(); |
} |
void KolibriOnKeyPress(TThreadData /*th*/) |
{ |
long key = GetKey(); |
switch(key){ |
case 176: //Left |
angle_z+=delt_size; |
draw_3d(); |
kosglSwapBuffers(); |
break; |
case 179: //Right |
angle_z-=delt_size; |
draw_3d(); |
kosglSwapBuffers(); |
//break; |
}; |
} |
/programs/bcc32/examples/tinygl_1/tinygl_1_cpp.bat |
---|
0,0 → 1,15 |
Set NAME=tinygl_1 |
Set BCC_DIR=..\..\..\bcc32 |
kos32-bcc -S -v- -R- -6 -a4 -O2 -Og -Oi -Ov -OS -k- -D__KOLIBRI__ -I..\..\..\bcc32\include %NAME%.cpp |
echo STACKSIZE equ 8192> kos_make.inc |
echo include "%BCC_DIR%\include\kos_start.inc">> kos_make.inc |
echo include "%BCC_DIR%\include\kos_func.inc">> kos_make.inc |
echo include "%BCC_DIR%\include\kos_heap.inc">> kos_make.inc |
echo include "kos_make.inc" > f_%NAME%.asm |
t2fasm < %NAME%.asm >> f_%NAME%.asm |
fasm f_%NAME%.asm %NAME%.kex |
if exist %NAME%.kex kpack %NAME%.kex |
if exist %NAME%.kex del kos_make.inc |
pause |
/programs/bcc32/include/l_tinygl.h |
---|
0,0 → 1,804 |
#ifndef __L_TINYGL_H_INCLUDED_ |
#define __L_TINYGL_H_INCLUDED_ |
// |
// tinygl.obj |
// |
enum { |
/* Boolean values */ |
GL_FALSE = 0, |
GL_TRUE = 1, |
/* Data types */ |
GL_BYTE = 0x1400, |
GL_UNSIGNED_BYTE = 0x1401, |
GL_SHORT = 0x1402, |
GL_UNSIGNED_SHORT = 0x1403, |
GL_INT = 0x1404, |
GL_UNSIGNED_INT = 0x1405, |
GL_FLOAT = 0x1406, |
GL_DOUBLE = 0x140A, |
GL_2_BYTES = 0x1407, |
GL_3_BYTES = 0x1408, |
GL_4_BYTES = 0x1409, |
/* Primitives */ |
GL_LINES = 0x0001, |
GL_POINTS = 0x0000, |
GL_LINE_STRIP = 0x0003, |
GL_LINE_LOOP = 0x0002, |
GL_TRIANGLES = 0x0004, |
GL_TRIANGLE_STRIP = 0x0005, |
GL_TRIANGLE_FAN = 0x0006, |
GL_QUADS = 0x0007, |
GL_QUAD_STRIP = 0x0008, |
GL_POLYGON = 0x0009, |
GL_EDGE_FLAG = 0x0B43, |
/* Vertex Arrays */ |
GL_VERTEX_ARRAY = 0x8074, |
GL_NORMAL_ARRAY = 0x8075, |
GL_COLOR_ARRAY = 0x8076, |
GL_INDEX_ARRAY = 0x8077, |
GL_TEXTURE_COORD_ARRAY = 0x8078, |
GL_EDGE_FLAG_ARRAY = 0x8079, |
GL_VERTEX_ARRAY_SIZE = 0x807A, |
GL_VERTEX_ARRAY_TYPE = 0x807B, |
GL_VERTEX_ARRAY_STRIDE = 0x807C, |
GL_VERTEX_ARRAY_COUNT = 0x807D, |
GL_NORMAL_ARRAY_TYPE = 0x807E, |
GL_NORMAL_ARRAY_STRIDE = 0x807F, |
GL_NORMAL_ARRAY_COUNT = 0x8080, |
GL_COLOR_ARRAY_SIZE = 0x8081, |
GL_COLOR_ARRAY_TYPE = 0x8082, |
GL_COLOR_ARRAY_STRIDE = 0x8083, |
GL_COLOR_ARRAY_COUNT = 0x8084, |
GL_INDEX_ARRAY_TYPE = 0x8085, |
GL_INDEX_ARRAY_STRIDE = 0x8086, |
GL_INDEX_ARRAY_COUNT = 0x8087, |
GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088, |
GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089, |
GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A, |
GL_TEXTURE_COORD_ARRAY_COUNT = 0x808B, |
GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C, |
GL_EDGE_FLAG_ARRAY_COUNT = 0x808D, |
GL_VERTEX_ARRAY_POINTER = 0x808E, |
GL_NORMAL_ARRAY_POINTER = 0x808F, |
GL_COLOR_ARRAY_POINTER = 0x8090, |
GL_INDEX_ARRAY_POINTER = 0x8091, |
GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092, |
GL_EDGE_FLAG_ARRAY_POINTER = 0x8093, |
GL_V2F = 0x2A20, |
GL_V3F = 0x2A21, |
GL_C4UB_V2F = 0x2A22, |
GL_C4UB_V3F = 0x2A23, |
GL_C3F_V3F = 0x2A24, |
GL_N3F_V3F = 0x2A25, |
GL_C4F_N3F_V3F = 0x2A26, |
GL_T2F_V3F = 0x2A27, |
GL_T4F_V4F = 0x2A28, |
GL_T2F_C4UB_V3F = 0x2A29, |
GL_T2F_C3F_V3F = 0x2A2A, |
GL_T2F_N3F_V3F = 0x2A2B, |
GL_T2F_C4F_N3F_V3F = 0x2A2C, |
GL_T4F_C4F_N3F_V4F = 0x2A2D, |
/* Matrix Mode */ |
GL_MATRIX_MODE = 0x0BA0, |
GL_MODELVIEW = 0x1700, |
GL_PROJECTION = 0x1701, |
GL_TEXTURE = 0x1702, |
/* Points */ |
GL_POINT_SMOOTH = 0x0B10, |
GL_POINT_SIZE = 0x0B11, |
GL_POINT_SIZE_GRANULARITY = 0x0B13, |
GL_POINT_SIZE_RANGE = 0x0B12, |
/* Lines */ |
GL_LINE_SMOOTH = 0x0B20, |
GL_LINE_STIPPLE = 0x0B24, |
GL_LINE_STIPPLE_PATTERN = 0x0B25, |
GL_LINE_STIPPLE_REPEAT = 0x0B26, |
GL_LINE_WIDTH = 0x0B21, |
GL_LINE_WIDTH_GRANULARITY = 0x0B23, |
GL_LINE_WIDTH_RANGE = 0x0B22, |
/* Polygons */ |
GL_POINT = 0x1B00, |
GL_LINE = 0x1B01, |
GL_FILL = 0x1B02, |
GL_CCW = 0x0901, |
GL_CW = 0x0900, |
GL_FRONT = 0x0404, |
GL_BACK = 0x0405, |
GL_CULL_FACE = 0x0B44, |
GL_CULL_FACE_MODE = 0x0B45, |
GL_POLYGON_SMOOTH = 0x0B41, |
GL_POLYGON_STIPPLE = 0x0B42, |
GL_FRONT_FACE = 0x0B46, |
GL_POLYGON_MODE = 0x0B40, |
GL_POLYGON_OFFSET_FACTOR = 0x3038, |
GL_POLYGON_OFFSET_UNITS = 0x2A00, |
GL_POLYGON_OFFSET_POINT = 0x2A01, |
GL_POLYGON_OFFSET_LINE = 0x2A02, |
GL_POLYGON_OFFSET_FILL = 0x8037, |
/* Display Lists */ |
GL_COMPILE = 0x1300, |
GL_COMPILE_AND_EXECUTE = 0x1301, |
GL_LIST_BASE = 0x0B32, |
GL_LIST_INDEX = 0x0B33, |
GL_LIST_MODE = 0x0B30, |
/* Depth buffer */ |
GL_NEVER = 0x0200, |
GL_LESS = 0x0201, |
GL_GEQUAL = 0x0206, |
GL_LEQUAL = 0x0203, |
GL_GREATER = 0x0204, |
GL_NOTEQUAL = 0x0205, |
GL_EQUAL = 0x0202, |
GL_ALWAYS = 0x0207, |
GL_DEPTH_TEST = 0x0B71, |
GL_DEPTH_BITS = 0x0D56, |
GL_DEPTH_CLEAR_VALUE = 0x0B73, |
GL_DEPTH_FUNC = 0x0B74, |
GL_DEPTH_RANGE = 0x0B70, |
GL_DEPTH_WRITEMASK = 0x0B72, |
GL_DEPTH_COMPONENT = 0x1902, |
/* Lighting */ |
GL_LIGHTING = 0x0B50, |
GL_LIGHT0 = 0x4000, |
GL_LIGHT1 = 0x4001, |
GL_LIGHT2 = 0x4002, |
GL_LIGHT3 = 0x4003, |
GL_LIGHT4 = 0x4004, |
GL_LIGHT5 = 0x4005, |
GL_LIGHT6 = 0x4006, |
GL_LIGHT7 = 0x4007, |
GL_SPOT_EXPONENT = 0x1205, |
GL_SPOT_CUTOFF = 0x1206, |
GL_CONSTANT_ATTENUATION = 0x1207, |
GL_LINEAR_ATTENUATION = 0x1208, |
GL_QUADRATIC_ATTENUATION = 0x1209, |
GL_AMBIENT = 0x1200, |
GL_DIFFUSE = 0x1201, |
GL_SPECULAR = 0x1202, |
GL_SHININESS = 0x1601, |
GL_EMISSION = 0x1600, |
GL_POSITION = 0x1203, |
GL_SPOT_DIRECTION = 0x1204, |
GL_AMBIENT_AND_DIFFUSE = 0x1602, |
GL_COLOR_INDEXES = 0x1603, |
GL_LIGHT_MODEL_TWO_SIDE = 0x0B52, |
GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51, |
GL_LIGHT_MODEL_AMBIENT = 0x0B53, |
GL_FRONT_AND_BACK = 0x0408, |
GL_SHADE_MODEL = 0x0B54, |
GL_FLAT = 0x1D00, |
GL_SMOOTH = 0x1D01, |
GL_COLOR_MATERIAL = 0x0B57, |
GL_COLOR_MATERIAL_FACE = 0x0B55, |
GL_COLOR_MATERIAL_PARAMETER = 0x0B56, |
GL_NORMALIZE = 0x0BA1, |
/* User clipping planes */ |
GL_CLIP_PLANE0 = 0x3000, |
GL_CLIP_PLANE1 = 0x3001, |
GL_CLIP_PLANE2 = 0x3002, |
GL_CLIP_PLANE3 = 0x3003, |
GL_CLIP_PLANE4 = 0x3004, |
GL_CLIP_PLANE5 = 0x3005, |
/* Accumulation buffer */ |
GL_ACCUM_RED_BITS = 0x0D58, |
GL_ACCUM_GREEN_BITS = 0x0D59, |
GL_ACCUM_BLUE_BITS = 0x0D5A, |
GL_ACCUM_ALPHA_BITS = 0x0D5B, |
GL_ACCUM_CLEAR_VALUE = 0x0B80, |
GL_ACCUM = 0x0100, |
GL_ADD = 0x0104, |
GL_LOAD = 0x0101, |
GL_MULT = 0x0103, |
GL_RETURN = 0x0102, |
/* Alpha testing */ |
GL_ALPHA_TEST = 0x0BC0, |
GL_ALPHA_TEST_REF = 0x0BC2, |
GL_ALPHA_TEST_FUNC = 0x0BC1, |
/* Blending */ |
GL_BLEND = 0x0BE2, |
GL_BLEND_SRC = 0x0BE1, |
GL_BLEND_DST = 0x0BE0, |
GL_ZERO = 0, |
GL_ONE = 1, |
GL_SRC_COLOR = 0x0300, |
GL_ONE_MINUS_SRC_COLOR = 0x0301, |
GL_DST_COLOR = 0x0306, |
GL_ONE_MINUS_DST_COLOR = 0x0307, |
GL_SRC_ALPHA = 0x0302, |
GL_ONE_MINUS_SRC_ALPHA = 0x0303, |
GL_DST_ALPHA = 0x0304, |
GL_ONE_MINUS_DST_ALPHA = 0x0305, |
GL_SRC_ALPHA_SATURATE = 0x0308, |
GL_CONSTANT_COLOR = 0x8001, |
GL_ONE_MINUS_CONSTANT_COLOR = 0x8002, |
GL_CONSTANT_ALPHA = 0x8003, |
GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004, |
/* Render Mode */ |
GL_FEEDBACK = 0x1C01, |
GL_RENDER = 0x1C00, |
GL_SELECT = 0x1C02, |
/* Feedback */ |
GL_2D = 0x0600, |
GL_3D = 0x0601, |
GL_3D_COLOR = 0x0602, |
GL_3D_COLOR_TEXTURE = 0x0603, |
GL_4D_COLOR_TEXTURE = 0x0604, |
GL_POINT_TOKEN = 0x0701, |
GL_LINE_TOKEN = 0x0702, |
GL_LINE_RESET_TOKEN = 0x0707, |
GL_POLYGON_TOKEN = 0x0703, |
GL_BITMAP_TOKEN = 0x0704, |
GL_DRAW_PIXEL_TOKEN = 0x0705, |
GL_COPY_PIXEL_TOKEN = 0x0706, |
GL_PASS_THROUGH_TOKEN = 0x0700, |
/* Fog */ |
GL_FOG = 0x0B60, |
GL_FOG_MODE = 0x0B65, |
GL_FOG_DENSITY = 0x0B62, |
GL_FOG_COLOR = 0x0B66, |
GL_FOG_INDEX = 0x0B61, |
GL_FOG_START = 0x0B63, |
GL_FOG_END = 0x0B64, |
GL_LINEAR = 0x2601, |
GL_EXP = 0x0800, |
GL_EXP2 = 0x0801, |
/* Logic Ops */ |
GL_LOGIC_OP = 0x0BF1, |
GL_LOGIC_OP_MODE = 0x0BF0, |
GL_CLEAR = 0x1500, |
GL_SET = 0x150F, |
GL_COPY = 0x1503, |
GL_COPY_INVERTED = 0x150C, |
GL_NOOP = 0x1505, |
GL_INVERT = 0x150A, |
GL_AND = 0x1501, |
GL_NAND = 0x150E, |
GL_OR = 0x1507, |
GL_NOR = 0x1508, |
GL_XOR = 0x1506, |
GL_EQUIV = 0x1509, |
GL_AND_REVERSE = 0x1502, |
GL_AND_INVERTED = 0x1504, |
GL_OR_REVERSE = 0x150B, |
GL_OR_INVERTED = 0x150D, |
/* Stencil */ |
GL_STENCIL_TEST = 0x0B90, |
GL_STENCIL_WRITEMASK = 0x0B98, |
GL_STENCIL_BITS = 0x0D57, |
GL_STENCIL_FUNC = 0x0B92, |
GL_STENCIL_VALUE_MASK = 0x0B93, |
GL_STENCIL_REF = 0x0B97, |
GL_STENCIL_FAIL = 0x0B94, |
GL_STENCIL_PASS_DEPTH_PASS = 0x0B96, |
GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95, |
GL_STENCIL_CLEAR_VALUE = 0x0B91, |
GL_STENCIL_INDEX = 0x1901, |
GL_KEEP = 0x1E00, |
GL_REPLACE = 0x1E01, |
GL_INCR = 0x1E02, |
GL_DECR = 0x1E03, |
/* Buffers, Pixel Drawing/Reading */ |
GL_NONE = 0, |
GL_LEFT = 0x0406, |
GL_RIGHT = 0x0407, |
/*GL_FRONT = 0x0404, */ |
/*GL_BACK = 0x0405, */ |
/*GL_FRONT_AND_BACK = 0x0408, */ |
GL_FRONT_LEFT = 0x0400, |
GL_FRONT_RIGHT = 0x0401, |
GL_BACK_LEFT = 0x0402, |
GL_BACK_RIGHT = 0x0403, |
GL_AUX0 = 0x0409, |
GL_AUX1 = 0x040A, |
GL_AUX2 = 0x040B, |
GL_AUX3 = 0x040C, |
GL_COLOR_INDEX = 0x1900, |
GL_RED = 0x1903, |
GL_GREEN = 0x1904, |
GL_BLUE = 0x1905, |
GL_ALPHA = 0x1906, |
GL_LUMINANCE = 0x1909, |
GL_LUMINANCE_ALPHA = 0x190A, |
GL_ALPHA_BITS = 0x0D55, |
GL_RED_BITS = 0x0D52, |
GL_GREEN_BITS = 0x0D53, |
GL_BLUE_BITS = 0x0D54, |
GL_INDEX_BITS = 0x0D51, |
GL_SUBPIXEL_BITS = 0x0D50, |
GL_AUX_BUFFERS = 0x0C00, |
GL_READ_BUFFER = 0x0C02, |
GL_DRAW_BUFFER = 0x0C01, |
GL_DOUBLEBUFFER = 0x0C32, |
GL_STEREO = 0x0C33, |
GL_BITMAP = 0x1A00, |
GL_COLOR = 0x1800, |
GL_DEPTH = 0x1801, |
GL_STENCIL = 0x1802, |
GL_DITHER = 0x0BD0, |
GL_RGB = 0x1907, |
GL_RGBA = 0x1908, |
/* Implementation limits */ |
GL_MAX_LIST_NESTING = 0x0B31, |
GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35, |
GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36, |
GL_MAX_NAME_STACK_DEPTH = 0x0D37, |
GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38, |
GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39, |
GL_MAX_EVAL_ORDER = 0x0D30, |
GL_MAX_LIGHTS = 0x0D31, |
GL_MAX_CLIP_PLANES = 0x0D32, |
GL_MAX_TEXTURE_SIZE = 0x0D33, |
GL_MAX_PIXEL_MAP_TABLE = 0x0D34, |
GL_MAX_VIEWPORT_DIMS = 0x0D3A, |
GL_MAX_CLIENT_ATTRIB_STACK_DEPTH= 0x0D3B, |
/* Gets */ |
GL_ATTRIB_STACK_DEPTH = 0x0BB0, |
GL_COLOR_CLEAR_VALUE = 0x0C22, |
GL_COLOR_WRITEMASK = 0x0C23, |
GL_CURRENT_INDEX = 0x0B01, |
GL_CURRENT_COLOR = 0x0B00, |
GL_CURRENT_NORMAL = 0x0B02, |
GL_CURRENT_RASTER_COLOR = 0x0B04, |
GL_CURRENT_RASTER_DISTANCE = 0x0B09, |
GL_CURRENT_RASTER_INDEX = 0x0B05, |
GL_CURRENT_RASTER_POSITION = 0x0B07, |
GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06, |
GL_CURRENT_RASTER_POSITION_VALID = 0x0B08, |
GL_CURRENT_TEXTURE_COORDS = 0x0B03, |
GL_INDEX_CLEAR_VALUE = 0x0C20, |
GL_INDEX_MODE = 0x0C30, |
GL_INDEX_WRITEMASK = 0x0C21, |
GL_MODELVIEW_MATRIX = 0x0BA6, |
GL_MODELVIEW_STACK_DEPTH = 0x0BA3, |
GL_NAME_STACK_DEPTH = 0x0D70, |
GL_PROJECTION_MATRIX = 0x0BA7, |
GL_PROJECTION_STACK_DEPTH = 0x0BA4, |
GL_RENDER_MODE = 0x0C40, |
GL_RGBA_MODE = 0x0C31, |
GL_TEXTURE_MATRIX = 0x0BA8, |
GL_TEXTURE_STACK_DEPTH = 0x0BA5, |
GL_VIEWPORT = 0x0BA2, |
/* Evaluators */ |
GL_AUTO_NORMAL = 0x0D80, |
GL_MAP1_COLOR_4 = 0x0D90, |
GL_MAP1_GRID_DOMAIN = 0x0DD0, |
GL_MAP1_GRID_SEGMENTS = 0x0DD1, |
GL_MAP1_INDEX = 0x0D91, |
GL_MAP1_NORMAL = 0x0D92, |
GL_MAP1_TEXTURE_COORD_1 = 0x0D93, |
GL_MAP1_TEXTURE_COORD_2 = 0x0D94, |
GL_MAP1_TEXTURE_COORD_3 = 0x0D95, |
GL_MAP1_TEXTURE_COORD_4 = 0x0D96, |
GL_MAP1_VERTEX_3 = 0x0D97, |
GL_MAP1_VERTEX_4 = 0x0D98, |
GL_MAP2_COLOR_4 = 0x0DB0, |
GL_MAP2_GRID_DOMAIN = 0x0DD2, |
GL_MAP2_GRID_SEGMENTS = 0x0DD3, |
GL_MAP2_INDEX = 0x0DB1, |
GL_MAP2_NORMAL = 0x0DB2, |
GL_MAP2_TEXTURE_COORD_1 = 0x0DB3, |
GL_MAP2_TEXTURE_COORD_2 = 0x0DB4, |
GL_MAP2_TEXTURE_COORD_3 = 0x0DB5, |
GL_MAP2_TEXTURE_COORD_4 = 0x0DB6, |
GL_MAP2_VERTEX_3 = 0x0DB7, |
GL_MAP2_VERTEX_4 = 0x0DB8, |
GL_COEFF = 0x0A00, |
GL_DOMAIN = 0x0A02, |
GL_ORDER = 0x0A01, |
/* Hints */ |
GL_FOG_HINT = 0x0C54, |
GL_LINE_SMOOTH_HINT = 0x0C52, |
GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50, |
GL_POINT_SMOOTH_HINT = 0x0C51, |
GL_POLYGON_SMOOTH_HINT = 0x0C53, |
GL_DONT_CARE = 0x1100, |
GL_FASTEST = 0x1101, |
GL_NICEST = 0x1102, |
/* Scissor box */ |
GL_SCISSOR_TEST = 0x0C11, |
GL_SCISSOR_BOX = 0x0C10, |
/* Pixel Mode / Transfer */ |
GL_MAP_COLOR = 0x0D10, |
GL_MAP_STENCIL = 0x0D11, |
GL_INDEX_SHIFT = 0x0D12, |
GL_INDEX_OFFSET = 0x0D13, |
GL_RED_SCALE = 0x0D14, |
GL_RED_BIAS = 0x0D15, |
GL_GREEN_SCALE = 0x0D18, |
GL_GREEN_BIAS = 0x0D19, |
GL_BLUE_SCALE = 0x0D1A, |
GL_BLUE_BIAS = 0x0D1B, |
GL_ALPHA_SCALE = 0x0D1C, |
GL_ALPHA_BIAS = 0x0D1D, |
GL_DEPTH_SCALE = 0x0D1E, |
GL_DEPTH_BIAS = 0x0D1F, |
GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1, |
GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0, |
GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2, |
GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3, |
GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4, |
GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5, |
GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6, |
GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7, |
GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8, |
GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9, |
GL_PIXEL_MAP_S_TO_S = 0x0C71, |
GL_PIXEL_MAP_I_TO_I = 0x0C70, |
GL_PIXEL_MAP_I_TO_R = 0x0C72, |
GL_PIXEL_MAP_I_TO_G = 0x0C73, |
GL_PIXEL_MAP_I_TO_B = 0x0C74, |
GL_PIXEL_MAP_I_TO_A = 0x0C75, |
GL_PIXEL_MAP_R_TO_R = 0x0C76, |
GL_PIXEL_MAP_G_TO_G = 0x0C77, |
GL_PIXEL_MAP_B_TO_B = 0x0C78, |
GL_PIXEL_MAP_A_TO_A = 0x0C79, |
GL_PACK_ALIGNMENT = 0x0D05, |
GL_PACK_LSB_FIRST = 0x0D01, |
GL_PACK_ROW_LENGTH = 0x0D02, |
GL_PACK_SKIP_PIXELS = 0x0D04, |
GL_PACK_SKIP_ROWS = 0x0D03, |
GL_PACK_SWAP_BYTES = 0x0D00, |
GL_UNPACK_ALIGNMENT = 0x0CF5, |
GL_UNPACK_LSB_FIRST = 0x0CF1, |
GL_UNPACK_ROW_LENGTH = 0x0CF2, |
GL_UNPACK_SKIP_PIXELS = 0x0CF4, |
GL_UNPACK_SKIP_ROWS = 0x0CF3, |
GL_UNPACK_SWAP_BYTES = 0x0CF0, |
GL_ZOOM_X = 0x0D16, |
GL_ZOOM_Y = 0x0D17, |
/* Texture mapping */ |
GL_TEXTURE_ENV = 0x2300, |
GL_TEXTURE_ENV_MODE = 0x2200, |
GL_TEXTURE_1D = 0x0DE0, |
GL_TEXTURE_2D = 0x0DE1, |
GL_TEXTURE_WRAP_S = 0x2802, |
GL_TEXTURE_WRAP_T = 0x2803, |
GL_TEXTURE_MAG_FILTER = 0x2800, |
GL_TEXTURE_MIN_FILTER = 0x2801, |
GL_TEXTURE_ENV_COLOR = 0x2201, |
GL_TEXTURE_GEN_S = 0x0C60, |
GL_TEXTURE_GEN_T = 0x0C61, |
GL_TEXTURE_GEN_MODE = 0x2500, |
GL_TEXTURE_BORDER_COLOR = 0x1004, |
GL_TEXTURE_WIDTH = 0x1000, |
GL_TEXTURE_HEIGHT = 0x1001, |
GL_TEXTURE_BORDER = 0x1005, |
GL_TEXTURE_COMPONENTS = 0x1003, |
GL_NEAREST_MIPMAP_NEAREST = 0x2700, |
GL_NEAREST_MIPMAP_LINEAR = 0x2702, |
GL_LINEAR_MIPMAP_NEAREST = 0x2701, |
GL_LINEAR_MIPMAP_LINEAR = 0x2703, |
GL_OBJECT_LINEAR = 0x2401, |
GL_OBJECT_PLANE = 0x2501, |
GL_EYE_LINEAR = 0x2400, |
GL_EYE_PLANE = 0x2502, |
GL_SPHERE_MAP = 0x2402, |
GL_DECAL = 0x2101, |
GL_MODULATE = 0x2100, |
GL_NEAREST = 0x2600, |
GL_REPEAT = 0x2901, |
GL_CLAMP = 0x2900, |
GL_S = 0x2000, |
GL_T = 0x2001, |
GL_R = 0x2002, |
GL_Q = 0x2003, |
GL_TEXTURE_GEN_R = 0x0C62, |
GL_TEXTURE_GEN_Q = 0x0C63, |
GL_PROXY_TEXTURE_1D = 0x8063, |
GL_PROXY_TEXTURE_2D = 0x8064, |
GL_TEXTURE_PRIORITY = 0x8066, |
GL_TEXTURE_RESIDENT = 0x8067, |
GL_TEXTURE_1D_BINDING = 0x8068, |
GL_TEXTURE_2D_BINDING = 0x8069, |
/* Internal texture formats */ |
GL_ALPHA4 = 0x803B, |
GL_ALPHA8 = 0x803C, |
GL_ALPHA12 = 0x803D, |
GL_ALPHA16 = 0x803E, |
GL_LUMINANCE4 = 0x803F, |
GL_LUMINANCE8 = 0x8040, |
GL_LUMINANCE12 = 0x8041, |
GL_LUMINANCE16 = 0x8042, |
GL_LUMINANCE4_ALPHA4 = 0x8043, |
GL_LUMINANCE6_ALPHA2 = 0x8044, |
GL_LUMINANCE8_ALPHA8 = 0x8045, |
GL_LUMINANCE12_ALPHA4 = 0x8046, |
GL_LUMINANCE12_ALPHA12 = 0x8047, |
GL_LUMINANCE16_ALPHA16 = 0x8048, |
GL_INTENSITY = 0x8049, |
GL_INTENSITY4 = 0x804A, |
GL_INTENSITY8 = 0x804B, |
GL_INTENSITY12 = 0x804C, |
GL_INTENSITY16 = 0x804D, |
GL_R3_G3_B2 = 0x2A10, |
GL_RGB4 = 0x804F, |
GL_RGB5 = 0x8050, |
GL_RGB8 = 0x8051, |
GL_RGB10 = 0x8052, |
GL_RGB12 = 0x8053, |
GL_RGB16 = 0x8054, |
GL_RGBA2 = 0x8055, |
GL_RGBA4 = 0x8056, |
GL_RGB5_A1 = 0x8057, |
GL_RGBA8 = 0x8058, |
GL_RGB10_A2 = 0x8059, |
GL_RGBA12 = 0x805A, |
GL_RGBA16 = 0x805B, |
/* Utility */ |
GL_VENDOR = 0x1F00, |
GL_RENDERER = 0x1F01, |
GL_VERSION = 0x1F02, |
GL_EXTENSIONS = 0x1F03, |
/* Errors */ |
GL_INVALID_VALUE = 0x0501, |
GL_INVALID_ENUM = 0x0500, |
GL_INVALID_OPERATION = 0x0502, |
GL_STACK_OVERFLOW = 0x0503, |
GL_STACK_UNDERFLOW = 0x0504, |
GL_OUT_OF_MEMORY = 0x0505, |
/* |
* 1.0 Extensions |
*/ |
/* GL_EXT_blend_minmax and GL_EXT_blend_color */ |
GL_CONSTANT_COLOR_EXT = 0x8001, |
GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002, |
GL_CONSTANT_ALPHA_EXT = 0x8003, |
GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004, |
GL_BLEND_EQUATION_EXT = 0x8009, |
GL_MIN_EXT = 0x8007, |
GL_MAX_EXT = 0x8008, |
GL_FUNC_ADD_EXT = 0x8006, |
GL_FUNC_SUBTRACT_EXT = 0x800A, |
GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B, |
GL_BLEND_COLOR_EXT = 0x8005, |
/* GL_EXT_polygon_offset */ |
GL_POLYGON_OFFSET_EXT = 0x8037, |
GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038, |
GL_POLYGON_OFFSET_BIAS_EXT = 0x8039, |
/* GL_EXT_vertex_array */ |
GL_VERTEX_ARRAY_EXT = 0x8074, |
GL_NORMAL_ARRAY_EXT = 0x8075, |
GL_COLOR_ARRAY_EXT = 0x8076, |
GL_INDEX_ARRAY_EXT = 0x8077, |
GL_TEXTURE_COORD_ARRAY_EXT = 0x8078, |
GL_EDGE_FLAG_ARRAY_EXT = 0x8079, |
GL_VERTEX_ARRAY_SIZE_EXT = 0x807A, |
GL_VERTEX_ARRAY_TYPE_EXT = 0x807B, |
GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C, |
GL_VERTEX_ARRAY_COUNT_EXT = 0x807D, |
GL_NORMAL_ARRAY_TYPE_EXT = 0x807E, |
GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F, |
GL_NORMAL_ARRAY_COUNT_EXT = 0x8080, |
GL_COLOR_ARRAY_SIZE_EXT = 0x8081, |
GL_COLOR_ARRAY_TYPE_EXT = 0x8082, |
GL_COLOR_ARRAY_STRIDE_EXT = 0x8083, |
GL_COLOR_ARRAY_COUNT_EXT = 0x8084, |
GL_INDEX_ARRAY_TYPE_EXT = 0x8085, |
GL_INDEX_ARRAY_STRIDE_EXT = 0x8086, |
GL_INDEX_ARRAY_COUNT_EXT = 0x8087, |
GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088, |
GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089, |
GL_TEXTURE_COORD_ARRAY_STRIDE_EXT= 0x808A, |
GL_TEXTURE_COORD_ARRAY_COUNT_EXT= 0x808B, |
GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C, |
GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D, |
GL_VERTEX_ARRAY_POINTER_EXT = 0x808E, |
GL_NORMAL_ARRAY_POINTER_EXT = 0x808F, |
GL_COLOR_ARRAY_POINTER_EXT = 0x8090, |
GL_INDEX_ARRAY_POINTER_EXT = 0x8091, |
GL_TEXTURE_COORD_ARRAY_POINTER_EXT= 0x8092, |
GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093 |
}; |
enum { |
GL_CURRENT_BIT = 0x00000001, |
GL_POINT_BIT = 0x00000002, |
GL_LINE_BIT = 0x00000004, |
GL_POLYGON_BIT = 0x00000008, |
GL_POLYGON_STIPPLE_BIT = 0x00000010, |
GL_PIXEL_MODE_BIT = 0x00000020, |
GL_LIGHTING_BIT = 0x00000040, |
GL_FOG_BIT = 0x00000080, |
GL_DEPTH_BUFFER_BIT = 0x00000100, |
GL_ACCUM_BUFFER_BIT = 0x00000200, |
GL_STENCIL_BUFFER_BIT = 0x00000400, |
GL_VIEWPORT_BIT = 0x00000800, |
GL_TRANSFORM_BIT = 0x00001000, |
GL_ENABLE_BIT = 0x00002000, |
GL_COLOR_BUFFER_BIT = 0x00004000, |
GL_HINT_BIT = 0x00008000, |
GL_EVAL_BIT = 0x00010000, |
GL_LIST_BIT = 0x00020000, |
GL_TEXTURE_BIT = 0x00040000, |
GL_SCISSOR_BIT = 0x00080000, |
GL_ALL_ATTRIB_BITS = 0x000fffff |
}; |
struct ZBuffer |
{ |
long int xsize, ysize; |
int linesize; //line size, in bytes |
int mode; |
unsigned short int* zbuf; |
unsigned char* pbuf; //PIXEL |
int frame_buffer_allocated; |
int nb_colors; |
unsigned char* dctable; |
int* ctable; |
unsigned char* current_texture; //PIXEL |
unsigned int s_log2; |
unsigned int s_bound; |
unsigned int t_bound; |
}; |
struct TinyGLContext |
{ |
ZBuffer* gl_context; |
long int xsize, ysize; |
long int dx, dy, x, y; |
}; |
// |
// tinygl - import table |
// |
#define import_tinygl glEnable |
void (__stdcall* glEnable)(int code) = (void (__stdcall*)(int))&"glEnable"; |
void (__stdcall* glDisable)(int code) = (void (__stdcall*)(int))&"glDisable"; |
void (__stdcall* glShadeModel)(int mode) = (void (__stdcall*)(int))&"glShadeModel"; |
void (__stdcall* glCullFace)(int mode) = (void (__stdcall*)(int))&"glCullFace"; |
void (__stdcall* glPolygonMode)(int face, int mode) = (void (__stdcall*)(int, int))&"glPolygonMode"; |
void (__stdcall* glBegin)(int type) = (void (__stdcall*)(int))&"glBegin"; |
void (__stdcall* glEnd)() = (void (__stdcall*)())&"glEnd"; |
void (__stdcall* glVertex2f)(float x, float y) = (void (__stdcall*)(float, float))&"glVertex2f"; |
void (__stdcall* glVertex2d)(double x, double y) = (void (__stdcall*)(double, double))&"glVertex2d"; |
void (__stdcall* glVertex2fv)(float* v) = (void (__stdcall*)(float*))&"glVertex2fv"; |
void (__stdcall* glVertex2dv)(double* v) = (void (__stdcall*)(double*))&"glVertex2dv"; |
void (__stdcall* glVertex3f)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glVertex3f"; |
void (__stdcall* glVertex3d)(double x, double y, double z) = (void (__stdcall*)(double, double, double))&"glVertex3d"; |
void (__stdcall* glVertex3fv)(float* v) = (void (__stdcall*)(float*))&"glVertex3fv"; |
void (__stdcall* glVertex3dv)(double* v) = (void (__stdcall*)(double*))&"glVertex3dv"; |
void (__stdcall* glVertex4f)(float x, float y, float z, float w) = (void (__stdcall*)(float, float, float, float))&"glVertex4f"; |
void (__stdcall* glVertex4d)(double x, double y, double z, double w) = (void (__stdcall*)(double, double, double, double))&"glVertex4d"; |
void (__stdcall* glVertex4fv)(float* v) = (void (__stdcall*)(float*))&"glVertex4fv"; |
void (__stdcall* glVertex4dv)(double* v) = (void (__stdcall*)(double*))&"glVertex4dv"; |
void (__stdcall* glColor3f)(float r, float g, float b) = (void (__stdcall*)(float, float, float))&"glColor3f"; |
//void (__stdcall* glColor3d)(...) = (void (__stdcall*)(...))&"glColor3d"; |
//void (__stdcall* glColor3fv)(...) = (void (__stdcall*)(...))&"glColor3fv"; |
//void (__stdcall* glColor3dv)(...) = (void (__stdcall*)(...))&"glColor3dv"; |
void (__stdcall* glColor3ub)(unsigned char r, unsigned char g, unsigned char b) = (void (__stdcall*)(unsigned char, unsigned char, unsigned char))&"glColor3ub"; |
//void (__stdcall* glColor4f)(...) = (void (__stdcall*)(...))&"glColor4f"; |
//void (__stdcall* glColor4d)(...) = (void (__stdcall*)(...))&"glColor4d"; |
//void (__stdcall* glColor4fv)(...) = (void (__stdcall*)(...))&"glColor4fv"; |
//void (__stdcall* glColor4dv)(...) = (void (__stdcall*)(...))&"glColor4dv"; |
void (__stdcall* glNormal3f)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glNormal3f"; |
//void (__stdcall* glNormal3d)(...) = (void (__stdcall*)(...))&"glNormal3d"; |
//void (__stdcall* glNormal3fv)(...) = (void (__stdcall*)(...))&"glNormal3fv"; |
//void (__stdcall* glNormal3dv)(...) = (void (__stdcall*)(...))&"glNormal3dv"; |
//void (__stdcall* glTexCoord1f)(...) = (void (__stdcall*)(...))&"glTexCoord1f"; |
//void (__stdcall* glTexCoord1d)(...) = (void (__stdcall*)(...))&"glTexCoord1d"; |
//void (__stdcall* glTexCoord1fv)(...) = (void (__stdcall*)(...))&"glTexCoord1fv"; |
//void (__stdcall* glTexCoord1dv)(...) = (void (__stdcall*)(...))&"glTexCoord1dv"; |
void (__stdcall* glTexCoord2f)(float s, float t) = (void (__stdcall*)(float, float))&"glTexCoord2f"; |
//void (__stdcall* glTexCoord2d)(...) = (void (__stdcall*)(...))&"glTexCoord2d"; |
void (__stdcall* glTexCoord2fv)(float* v) = (void (__stdcall*)(float*))&"glTexCoord2fv"; |
//void (__stdcall* glTexCoord2dv)(...) = (void (__stdcall*)(...))&"glTexCoord2dv"; |
//void (__stdcall* glTexCoord3f)(...) = (void (__stdcall*)(...))&"glTexCoord3f"; |
//void (__stdcall* glTexCoord3d)(...) = (void (__stdcall*)(...))&"glTexCoord3d"; |
//void (__stdcall* glTexCoord3fv)(...) = (void (__stdcall*)(...))&"glTexCoord3fv"; |
//void (__stdcall* glTexCoord3dv)(...) = (void (__stdcall*)(...))&"glTexCoord3dv"; |
void (__stdcall* glTexCoord4f)(float s, float t, float r, float q) = (void (__stdcall*)(float, float, float, float))&"glTexCoord4f"; |
//void (__stdcall* glTexCoord4d)(...) = (void (__stdcall*)(...))&"glTexCoord4d"; |
//void (__stdcall* glTexCoord4fv)(...) = (void (__stdcall*)(...))&"glTexCoord4fv"; |
//void (__stdcall* glTexCoord4dv)(...) = (void (__stdcall*)(...))&"glTexCoord4dv"; |
void (__stdcall* glEdgeFlag)(int flag) = (void (__stdcall*)(int))&"glEdgeFlag"; |
void (__stdcall* glMatrixMode)(int mode) = (void (__stdcall*)(int))&"glMatrixMode"; |
void (__stdcall* glLoadMatrixf)(const float* m) = (void (__stdcall*)(const float*))&"glLoadMatrixf"; |
void (__stdcall* glLoadIdentity)() = (void (__stdcall*)())&"glLoadIdentity"; |
//void (__stdcall* glMultMatrixf)(...) = (void (__stdcall*)(...))&"glMultMatrixf"; |
void (__stdcall* glPushMatrix)() = (void (__stdcall*)())&"glPushMatrix"; |
void (__stdcall* glPopMatrix)() = (void (__stdcall*)())&"glPopMatrix"; |
void (__stdcall* glRotatef)(float angle, float x, float y, float z) = (void (__stdcall*)(float, float, float, float))&"glRotatef"; |
void (__stdcall* glTranslatef)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glTranslatef"; |
void (__stdcall* glScalef)(float x, float y, float z) = (void (__stdcall*)(float, float, float))&"glScalef"; |
void (__stdcall* glViewport)(int x, int y, int width, int height) = (void (__stdcall*)(int, int, int, int))&"glViewport"; |
void (__stdcall* glFrustum)(double l, double r, double b, double t, double n, double f) = (void (__stdcall*)(double, double, double, double, double, double))&"glFrustum"; |
void (__stdcall* glGenLists)(int range) = (void (__stdcall*)(int))&"glGenLists"; |
//void (__stdcall* glIsList)(...) = (void (__stdcall*)(...))&"glIsList"; |
void (__stdcall* glNewList)(unsigned int list, int mode) = (void (__stdcall*)(unsigned int, int))&"glNewList"; |
void (__stdcall* glEndList)() = (void (__stdcall*)())&"glEndList"; |
void (__stdcall* glCallList)(unsigned int list) = (void (__stdcall*)(unsigned int))&"glCallList"; |
void (__stdcall* glClear)(int mask) = (void (__stdcall*)(int))&"glClear"; |
void (__stdcall* glClearColor)(float r, float g, float b, float a) = (void (__stdcall*)(float, float, float, float))&"glClearColor"; |
//void (__stdcall* glClearDepth)(...) = (void (__stdcall*)(...))&"glClearDepth"; |
void (__stdcall* glRenderMode)(int mode) = (void (__stdcall*)(int))&"glRenderMode"; |
//void (__stdcall* glSelectBuffer)(...) = (void (__stdcall*)(...))&"glSelectBuffer"; |
//void (__stdcall* glInitNames)(...) = (void (__stdcall*)(...))&"glInitNames"; |
//void (__stdcall* glPushName)(...) = (void (__stdcall*)(...))&"glPushName"; |
//void (__stdcall* glPopName)(...) = (void (__stdcall*)(...))&"glPopName"; |
//void (__stdcall* glLoadName)(...) = (void (__stdcall*)(...))&"glLoadName"; |
void (__stdcall* glGenTextures)(int n, unsigned int* textures) = (void (__stdcall*)(int, unsigned int *))&"glGenTextures"; |
//void (__stdcall* glDeleteTextures)(...) = (void (__stdcall*)(...))&"glDeleteTextures"; |
void (__stdcall* glBindTexture)(int target, int texture) = (void (__stdcall*)(int, int))&"glBindTexture"; |
void (__stdcall* glTexImage2D)(int target, int level, int components, int width, int height, int border, int format, int type, void *pixels) = (void (__stdcall*)(int, int, int, int, int, int, int, int, void*))&"glTexImage2D"; |
void (__stdcall* glTexEnvi)(int target, int pname, int param) = (void (__stdcall*)(int, int, int))&"glTexEnvi"; |
void (__stdcall* glTexParameteri)(int target, int pname, int param) = (void (__stdcall*)(int, int, int))&"glTexParameteri"; |
//void (__stdcall* glPixelStorei)(...) = (void (__stdcall*)(...))&"glPixelStorei"; |
void (__stdcall* glMaterialfv)(int mode, int type, float* v) = (void (__stdcall*)(int, int, float*))&"glMaterialfv"; |
void (__stdcall* glMaterialf)(int mode, int type, float v) = (void (__stdcall*)(int, int, float))&"glMaterialf"; |
void (__stdcall* glColorMaterial)(int mode, int type) = (void (__stdcall*)(int, int))&"glColorMaterial"; |
void (__stdcall* glLightfv)(int light, int type, float* v) = (void (__stdcall*)(int, int, float*))&"glLightfv"; |
//void (__stdcall* glLightf)(...) = (void (__stdcall*)(...))&"glLightf"; |
//void (__stdcall* glLightModeli)(...) = (void (__stdcall*)(...))&"glLightModeli"; |
void (__stdcall* glLightModelfv)(int pname, float* param) = (void (__stdcall*)(int, float*))&"glLightModelfv"; |
//void (__stdcall* glFlush)(...) = (void (__stdcall*)(...))&"glFlush"; |
//void (__stdcall* glHint)(...) = (void (__stdcall*)(...))&"glHint"; |
//void (__stdcall* glGetIntegerv)(...) = (void (__stdcall*)(...))&"glGetIntegerv"; |
//void (__stdcall* glGetFloatv)(...) = (void (__stdcall*)(...))&"glGetFloatv"; |
//void (__stdcall* glFrontFace)(...) = (void (__stdcall*)(...))&"glFrontFace"; |
//void (__stdcall* glEnableClientState)(...) = (void (__stdcall*)(...))&"glEnableClientState"; |
//void (__stdcall* glDisableClientState)(...) = (void (__stdcall*)(...))&"glDisableClientState"; |
//void (__stdcall* glArrayElement)(...) = (void (__stdcall*)(...))&"glArrayElement"; |
//void (__stdcall* glDrawArrays)(...) = (void (__stdcall*)(...))&"glDrawArrays"; |
//void (__stdcall* glDrawElements)(...) = (void (__stdcall*)(...))&"glDrawElements"; |
//void (__stdcall* glVertexPointer)(...) = (void (__stdcall*)(...))&"glVertexPointer"; |
//void (__stdcall* glColorPointer)(...) = (void (__stdcall*)(...))&"glColorPointer"; |
//void (__stdcall* glNormalPointer)(...) = (void (__stdcall*)(...))&"glNormalPointer"; |
//void (__stdcall* glTexCoordPointer)(...) = (void (__stdcall*)(...))&"glTexCoordPointer"; |
//void (__stdcall* glPolygonOffset)(...) = (void (__stdcall*)(...))&"glPolygonOffset"; |
//void (__stdcall* glOrtho)(...) = (void (__stdcall*)(...))&"glOrtho"; |
//void (__stdcall* glDebug)(...) = (void (__stdcall*)(...))&"glDebug"; |
//void (__stdcall* glInit)(...) = (void (__stdcall*)(...))&"glInit"; |
//void (__stdcall* glClose)(...) = (void (__stdcall*)(...))&"glClose"; |
//void (__stdcall* gluPerspective)(...) = (void (__stdcall*)(...))&"gluPerspective"; |
//void (__stdcall* gluNewQuadric)(...) = (void (__stdcall*)(...))&"gluNewQuadric"; |
//void (__stdcall* gluDeleteQuadric)(...) = (void (__stdcall*)(...))&"gluDeleteQuadric"; |
//void (__stdcall* gluQuadricDrawStyle)(...) = (void (__stdcall*)(...))&"gluQuadricDrawStyle"; |
//void (__stdcall* gluQuadricOrientation)(...) = (void (__stdcall*)(...))&"gluQuadricOrientation"; |
//void (__stdcall* gluQuadricTexture)(...) = (void (__stdcall*)(...))&"gluQuadricTexture"; |
//void (__stdcall* gluCylinder)(...) = (void (__stdcall*)(...))&"gluCylinder"; |
//void (__stdcall* gluSphere)(...) = (void (__stdcall*)(...))&"gluSphere"; |
void (__stdcall* kosglMakeCurrent)(long l, long t, long w, long h, TinyGLContext*) = (void (__stdcall*)(long, long, long, long, TinyGLContext*))&"kosglMakeCurrent"; |
void (__stdcall* kosglSwapBuffers)() = (void (__stdcall*)())&"kosglSwapBuffers"; |
asm{ |
dd 0, 0 |
} |
#endif |
/programs/develop/libraries/TinyGL/asm_fork/api.asm |
---|
11,6 → 11,21 |
ret 20 ;=sizeof(dd)*5 |
align 4 |
proc glVertex4d, x:qword, y:qword, z:qword, w:qword |
add esp,-16 |
fld qword[w] |
fstp dword[esp+12] |
fld qword[z] |
fstp dword[esp+8] |
fld qword[y] |
fstp dword[esp+4] |
fld qword[x] |
fstp dword[esp] |
call glVertex4f |
ret |
endp |
align 4 |
proc glVertex2f, x:dword, y:dword |
stdcall glVertex4f,[x],[y],0.0,1.0 |
ret |
17,6 → 32,19 |
endp |
align 4 |
proc glVertex2d, x:qword, y:qword |
push 1.0 |
push 0.0 |
add esp,-8 |
fld qword[y] |
fstp dword[esp+4] |
fld qword[x] |
fstp dword[esp] |
call glVertex4f |
ret |
endp |
align 4 |
proc glVertex2fv uses eax, v:dword |
mov eax,[v] |
stdcall glVertex4f,[eax],[eax+4],0.0,1.0 |
24,6 → 52,20 |
endp |
align 4 |
proc glVertex2dv uses eax, v:dword |
mov eax,[v] |
push 1.0 |
push 0.0 |
add esp,-8 |
fld qword[eax+8] |
fstp dword[esp+4] |
fld qword[eax] |
fstp dword[esp] |
call glVertex4f |
ret |
endp |
align 4 |
proc glVertex3f, x:dword, y:dword, z:dword |
stdcall glVertex4f,[x],[y],[z],1.0 |
ret |
30,6 → 72,20 |
endp |
align 4 |
proc glVertex3d, x:qword, y:qword, z:qword |
push 1.0 |
add esp,-12 |
fld qword[z] |
fstp dword[esp+8] |
fld qword[y] |
fstp dword[esp+4] |
fld qword[x] |
fstp dword[esp] |
call glVertex4f |
ret |
endp |
align 4 |
proc glVertex3fv uses eax, v:dword |
mov eax,[v] |
stdcall glVertex4f,[eax],[eax+4],[eax+8],1.0 |
37,6 → 93,21 |
endp |
align 4 |
proc glVertex3dv uses eax, v:dword |
mov eax,[v] |
push 1.0 |
add esp,-12 |
fld qword[eax+16] |
fstp dword[esp+8] |
fld qword[eax+8] |
fstp dword[esp+4] |
fld qword[eax] |
fstp dword[esp] |
call glVertex4f |
ret |
endp |
align 4 |
proc glVertex4fv uses eax, v:dword |
mov eax,[v] |
stdcall glVertex4f,[eax],[eax+4],[eax+8],[eax+12] |
43,6 → 114,22 |
ret |
endp |
align 4 |
proc glVertex4dv uses eax, v:dword |
mov eax,[v] |
add esp,-16 |
fld qword[eax+24] |
fstp dword[esp+12] |
fld qword[eax+16] |
fstp dword[esp+8] |
fld qword[eax+8] |
fstp dword[esp+4] |
fld qword[eax] |
fstp dword[esp] |
call glVertex4f |
ret |
endp |
; glNormal |
align 4 |
/programs/develop/libraries/TinyGL/asm_fork/examples/gears.asm |
---|
6,7 → 6,7 |
include '../../../../../proc32.inc' |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../develop/libraries/box_lib/load_lib.mac' |
include '../../../../../load_lib.mac' |
include '../../../../../dll.inc' |
include '../opengl_const.inc' |
include 'fps.inc' |
18,8 → 18,7 |
dia dword[esp-4*(c_param*(c_funct-funct)+(1+c_param-param))] |
} |
;Так как некоторые извращенческие функции OpenGL воспринимают только параметры |
;типа double (8 байт) то придется пихать их в стек макросом glpush |
;Макрос для параметров типа double (8 байт) |
macro glpush GLDoubleVar { |
push dword[GLDoubleVar+4] |
push dword[GLDoubleVar] |
27,8 → 26,7 |
align 4 |
start: |
load_library name_tgl, cur_dir_path, library_path, system_path, \ |
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
load_library name_tgl, library_path, system_path, import_tinygl |
cmp eax,SF_TERMINATE_PROCESS |
jz button.exit |
903,7 → 901,7 |
;-------------------------------------------------- |
align 4 |
import_lib_tinygl: |
import_tinygl: |
macro E_LIB n |
{ |
920,11 → 918,6 |
;-------------------------------------------------- |
system_path db '/sys/lib/' |
name_tgl db 'tinygl.obj',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
;-------------------------------------------------- |
align 16 |
932,10 → 925,8 |
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
;sizeof.TinyGLContext = 28 |
procinfo process_information |
cur_dir_path rb 4096 |
library_path rb 4096 |
rb 4096 |
stacktop: |
cur_dir_path: |
rb 4096 |
library_path: |
rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/test0.asm |
---|
6,7 → 6,7 |
include '../../../../../proc32.inc' |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../develop/libraries/box_lib/load_lib.mac' |
include '../../../../../load_lib.mac' |
include '../../../../../dll.inc' |
include '../opengl_const.inc' |
14,8 → 14,7 |
align 4 |
start: |
load_library name_tgl, cur_dir_path, library_path, system_path, \ |
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
load_library name_tgl, library_path, system_path, import_lib_tinygl |
cmp eax,SF_TERMINATE_PROCESS |
jz button.exit |
154,21 → 153,14 |
;-------------------------------------------------- |
system_path db '/sys/lib/' |
name_tgl db 'tinygl.obj',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
;-------------------------------------------------- |
align 16 |
i_end: |
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
ctx1 rb 28 ;TinyGLContext or KOSGLContext |
;sizeof.TinyGLContext = 28 |
cur_dir_path rb 4096 |
library_path rb 4096 |
rb 1024 |
stacktop: |
cur_dir_path: |
rb 4096 |
library_path: |
rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/test1.asm |
---|
6,7 → 6,7 |
include '../../../../../proc32.inc' |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../develop/libraries/box_lib/load_lib.mac' |
include '../../../../../load_lib.mac' |
include '../../../../../dll.inc' |
include '../opengl_const.inc' |
14,8 → 14,7 |
align 4 |
start: |
load_library name_tgl, cur_dir_path, library_path, system_path, \ |
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
load_library name_tgl, library_path, system_path, import_lib_tinygl |
cmp eax,SF_TERMINATE_PROCESS |
jz button.exit |
154,21 → 153,14 |
;-------------------------------------------------- |
system_path db '/sys/lib/' |
name_tgl db 'tinygl.obj',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
;-------------------------------------------------- |
align 16 |
i_end: |
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
ctx1 rb 28 ;TinyGLContext or KOSGLContext |
;sizeof.TinyGLContext = 28 |
cur_dir_path rb 4096 |
library_path rb 4096 |
rb 1024 |
stacktop: |
cur_dir_path: |
rb 4096 |
library_path: |
rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/test2.asm |
---|
6,7 → 6,7 |
include '../../../../../proc32.inc' |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../develop/libraries/box_lib/load_lib.mac' |
include '../../../../../load_lib.mac' |
include '../../../../../dll.inc' |
include '../opengl_const.inc' |
14,8 → 14,7 |
align 4 |
start: |
load_library name_tgl, cur_dir_path, library_path, system_path, \ |
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
load_library name_tgl, library_path, system_path, import_lib_tinygl |
cmp eax,SF_TERMINATE_PROCESS |
jz button.exit |
163,21 → 162,14 |
;-------------------------------------------------- |
system_path db '/sys/lib/' |
name_tgl db 'tinygl.obj',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
;-------------------------------------------------- |
align 16 |
i_end: |
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
ctx1 rb 28 ;TinyGLContext or KOSGLContext |
;sizeof.TinyGLContext = 28 |
cur_dir_path rb 4096 |
library_path rb 4096 |
rb 1024 |
stacktop: |
cur_dir_path: |
rb 4096 |
library_path: |
rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/test3.asm |
---|
6,7 → 6,7 |
include '../../../../../proc32.inc' |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../develop/libraries/box_lib/load_lib.mac' |
include '../../../../../load_lib.mac' |
include '../../../../../dll.inc' |
include '../opengl_const.inc' |
14,8 → 14,7 |
align 4 |
start: |
load_library name_tgl, cur_dir_path, library_path, system_path, \ |
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
load_library name_tgl, library_path, system_path, import_lib_tinygl |
cmp eax,SF_TERMINATE_PROCESS |
jz button.exit |
155,21 → 154,14 |
;-------------------------------------------------- |
system_path db '/sys/lib/' |
name_tgl db 'tinygl.obj',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
;-------------------------------------------------- |
align 16 |
i_end: |
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
ctx1 rb 28 ;TinyGLContext or KOSGLContext |
;sizeof.TinyGLContext = 28 |
cur_dir_path rb 4096 |
library_path rb 4096 |
rb 1024 |
stacktop: |
cur_dir_path: |
rb 4096 |
library_path: |
rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/test_array0.asm |
---|
1,16 → 1,13 |
use32 |
org 0x0 |
org 0 |
db 'MENUET01' |
dd 0x1 |
dd start |
dd i_end |
dd mem,stacktop |
dd 0,cur_dir_path |
dd 1,start,i_end,mem,stacktop,0,cur_dir_path |
include '../../../../../../programs/proc32.inc' |
include '../../../../../../programs/macros.inc' |
include '../../../../../../programs/develop/libraries/box_lib/load_lib.mac' |
include '../../../../../../programs/dll.inc' |
include '../../../../../proc32.inc' |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../load_lib.mac' |
include '../../../../../dll.inc' |
include '../opengl_const.inc' |
@use_library |
17,12 → 14,11 |
align 4 |
start: |
load_library name_tgl, cur_dir_path, library_path, system_path, \ |
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
load_library name_tgl, library_path, system_path, import_tinygl |
cmp eax,-1 |
jz button.exit |
mcall 40,0x27 |
mcall SF_SET_EVENTS_MASK,0x27 |
stdcall [kosglMakeCurrent], 10,10,400,350,ctx1 |
stdcall [glEnable], GL_DEPTH_TEST |
37,7 → 33,7 |
align 4 |
still: |
mcall 10 |
mcall SF_WAIT_EVENT |
cmp al,1 |
jz red_win |
cmp al,2 |
49,19 → 45,18 |
align 4 |
draw_window: |
pushad |
mcall 12,1 |
mcall SF_REDRAW,SSF_BEGIN_DRAW |
mov edx,0x33ffffff ;0x73ffffff |
mcall 0,(50 shl 16)+430,(30 shl 16)+400,,,caption |
stdcall [kosglSwapBuffers] |
mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption |
call [kosglSwapBuffers] |
mcall 12,2 |
mcall SF_REDRAW,SSF_END_DRAW |
popad |
ret |
align 4 |
key: |
mcall 2 |
mcall SF_GET_KEY |
cmp ah,27 ;Esc |
je button.exit |
72,7 → 67,7 |
fadd dword[delt_sc] |
fstp dword[scale] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,45 ;- |
jne @f |
80,7 → 75,7 |
fsub dword[delt_sc] |
fstp dword[scale] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,178 ;Up |
jne @f |
88,7 → 83,7 |
fadd dword[delt_size] |
fstp dword[angle_y] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,177 ;Down |
jne @f |
96,7 → 91,7 |
fsub dword[delt_size] |
fstp dword[angle_y] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,176 ;Left |
jne @f |
104,7 → 99,7 |
fadd dword[delt_size] |
fstp dword[angle_z] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,179 ;Right |
jne @f |
112,7 → 107,7 |
fsub dword[delt_size] |
fstp dword[angle_z] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
jmp still |
119,23 → 114,20 |
align 4 |
button: |
mcall 17 |
mcall SF_GET_BUTTON |
cmp ah,1 |
jne still |
.exit: |
mcall -1 |
mcall SF_TERMINATE_PROCESS |
align 4 |
caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 |
align 4 |
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
;sizeof.TinyGLContext = 28 |
align 4 |
draw_3d: |
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
stdcall [glPushMatrix] |
call [glPushMatrix] |
;масштаб и повороты |
stdcall [glTranslatef], 0.0,0.0,0.5 |
152,7 → 144,7 |
stdcall [glDisableClientState], GL_COLOR_ARRAY ;отключаем режим рисования цветов |
stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин |
stdcall [glPopMatrix] |
call [glPopMatrix] |
ret |
align 4 |
168,7 → 160,7 |
;-------------------------------------------------- |
align 4 |
import_lib_tinygl: |
import_tinygl: |
macro E_LIB n |
{ |
185,17 → 177,13 |
;-------------------------------------------------- |
system_path db '/sys/lib/' |
name_tgl db 'tinygl.obj',0 |
err_message_found_lib db 'Sorry I cannot load library tinygl.obj',0 |
head_f_i: |
head_f_l db 'System error',0 |
err_message_import db 'Error on load import library tinygl.obj',0 |
;-------------------------------------------------- |
align 4 |
i_end: |
ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
cur_dir_path rb 4096 |
library_path rb 4096 |
rb 4096 |
stacktop: |
cur_dir_path: |
rb 4096 |
library_path: |
rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/test_array1.asm |
---|
1,5 → 1,5 |
use32 |
org 0x0 |
org 0 |
db 'MENUET01' |
dd 1,start,i_end,mem,stacktop,0,cur_dir_path |
6,7 → 6,7 |
include '../../../../../proc32.inc' |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../develop/libraries/box_lib/load_lib.mac' |
include '../../../../../load_lib.mac' |
include '../../../../../dll.inc' |
include '../opengl_const.inc' |
14,8 → 14,7 |
align 4 |
start: |
load_library name_tgl, cur_dir_path, library_path, system_path, \ |
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
load_library name_tgl, library_path, system_path, import_tinygl |
cmp eax,SF_TERMINATE_PROCESS |
jz button.exit |
62,9 → 61,8 |
pushad |
mcall SF_REDRAW,SSF_BEGIN_DRAW |
mov edx,0x33ffffff |
mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,,,caption |
stdcall [kosglSwapBuffers] |
mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption |
call [kosglSwapBuffers] |
mcall SF_REDRAW,SSF_END_DRAW |
popad |
83,7 → 81,7 |
fadd dword[delt_sc] |
fstp dword[scale] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,45 ;- |
jne @f |
91,7 → 89,7 |
fsub dword[delt_sc] |
fstp dword[scale] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,178 ;Up |
jne @f |
99,7 → 97,7 |
fadd dword[delt_size] |
fstp dword[angle_y] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,177 ;Down |
jne @f |
107,7 → 105,7 |
fsub dword[delt_size] |
fstp dword[angle_y] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,176 ;Left |
jne @f |
115,7 → 113,7 |
fadd dword[delt_size] |
fstp dword[angle_x] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
cmp ah,179 ;Right |
jne @f |
123,7 → 121,7 |
fsub dword[delt_size] |
fstp dword[angle_x] |
call draw_3d |
stdcall [kosglSwapBuffers] |
call [kosglSwapBuffers] |
@@: |
jmp still |
139,14 → 137,11 |
align 4 |
caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 |
align 4 |
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
;sizeof.TinyGLContext = 28 |
align 4 |
draw_3d: |
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
stdcall [glPushMatrix] |
call [glPushMatrix] |
;масштаб и повороты |
stdcall [glTranslatef], 0.0,0.0,0.5 |
155,7 → 150,7 |
stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
stdcall [glRotatef], [angle_x],1.0,0.0,0.0 |
;рисование через тндексный массив |
;рисование через индексный массив |
mov eax,house_3ds ;начало внедренного файла 3ds |
add eax,0xeb ;смещение по которому идут координаты вершин (получено с использованием программы info_3ds) |
stdcall [glVertexPointer], 3, GL_FLOAT, 0, eax ;задаем массив для вершин, 3 - число координат для одной вершины |
163,7 → 158,7 |
stdcall [glDrawElements], GL_TRIANGLES, 0x1a6*3, GL_UNSIGNED_SHORT, Indices ;mode, count, type, *indices |
stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин |
stdcall [glPopMatrix] |
call [glPopMatrix] |
ret |
align 4 |
199,17 → 194,13 |
;-------------------------------------------------- |
system_path db '/sys/lib/' |
name_tgl db 'tinygl.obj',0 |
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,0 |
head_f_i: |
head_f_l db 'System error',0 |
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,0 |
;-------------------------------------------------- |
align 4 |
i_end: |
ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
cur_dir_path rb 4096 |
library_path rb 4096 |
rb 4096 |
stacktop: |
cur_dir_path: |
rb 4096 |
library_path: |
rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/test_glu0.asm |
---|
6,7 → 6,7 |
include '../../../../../proc32.inc' |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../develop/libraries/box_lib/load_lib.mac' |
include '../../../../../load_lib.mac' |
include '../../../../../dll.inc' |
include '../opengl_const.inc' |
14,8 → 14,7 |
align 4 |
start: |
load_library name_tgl, cur_dir_path, library_path, system_path, \ |
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
load_library name_tgl, library_path, system_path, import_tinygl |
cmp eax,SF_TERMINATE_PROCESS |
jz button.exit |
23,7 → 22,7 |
stdcall [kosglMakeCurrent], 10,10,300,225,ctx1 |
stdcall [glEnable], GL_DEPTH_TEST |
stdcall [gluNewQuadric] |
call [gluNewQuadric] |
mov [qObj],eax |
stdcall [glClearColor], 0.5,0.5,0.5,0.0 |
170,7 → 169,7 |
;-------------------------------------------------- |
align 4 |
import_lib_tinygl: |
import_tinygl: |
macro E_LIB n |
{ |
187,21 → 186,13 |
;-------------------------------------------------- |
system_path db '/sys/lib/' |
name_tgl db 'tinygl.obj',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
;-------------------------------------------------- |
align 16 |
i_end: |
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
;sizeof.TinyGLContext = 28 |
ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
cur_dir_path rb 4096 |
library_path rb 4096 |
rb 2048 |
stacktop: |
cur_dir_path: |
rb 4096 |
library_path: |
rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/test_glu1.asm |
---|
7,14 → 7,13 |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../load_img.inc' |
include '../../../../../load_lib.mac' |
include '../opengl_const.inc' |
include '../zbuffer.inc' |
include '../../../../../develop/info3ds/info_fun_float.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
align 4 |
image_data_toolbar dd 0 |
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
;Макрос для параметров типа double (8 байт) |
366,7 → 365,7 |
;-------------------------------------------------- |
align 4 |
import_lib_tinygl: |
import_tinygl: |
macro E_LIB n |
{ |
490,14 → 489,6 |
lib_name_1 db 'buf2d.obj',0 |
system_dir_2 db '/sys/lib/' |
lib_name_2 db 'libimg.obj',0 |
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0 |
;-------------------------------------------------- |
txt_scale: |
535,23 → 526,21 |
align 4 |
l_libs_start: |
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ |
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i |
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ |
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i |
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\ |
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl |
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d |
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg |
l_libs_end: |
align 4 |
i_end: |
ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
image_data_toolbar dd 0 |
qObj dd 0 |
run_file_70 FileInfoBlock |
sc system_colors |
align 16 |
cur_dir_path rb 4096 |
file_name rb 4096 |
rb 4096 |
stacktop: |
cur_dir_path rb 4096 |
file_name rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/test_glu2.asm |
---|
7,14 → 7,13 |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../load_img.inc' |
include '../../../../../load_lib.mac' |
include '../opengl_const.inc' |
include '../zbuffer.inc' |
include '../../../../../develop/info3ds/info_fun_float.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
align 4 |
image_data_toolbar dd 0 |
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
;Макрос для параметров типа double (8 байт) |
357,7 → 356,7 |
;-------------------------------------------------- |
align 4 |
import_lib_tinygl: |
import_tinygl: |
macro E_LIB n |
{ |
481,14 → 480,6 |
lib_name_1 db 'buf2d.obj',0 |
system_dir_2 db '/sys/lib/' |
lib_name_2 db 'libimg.obj',0 |
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0 |
;-------------------------------------------------- |
txt_scale: |
526,23 → 517,21 |
align 4 |
l_libs_start: |
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ |
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i |
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ |
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i |
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\ |
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl |
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d |
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg |
l_libs_end: |
align 4 |
i_end: |
ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
image_data_toolbar dd 0 |
qObj dd 0 |
run_file_70 FileInfoBlock |
sc system_colors |
align 16 |
cur_dir_path rb 4096 |
file_name rb 4096 |
rb 4096 |
stacktop: |
cur_dir_path rb 4096 |
file_name rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/textures0.asm |
---|
7,11 → 7,12 |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../load_img.inc' |
include '../../../../../load_lib.mac' |
include '../opengl_const.inc' |
include '../zbuffer.inc' |
include '../../../../../develop/info3ds/info_fun_float.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
;Макрос для параметров типа double (8 байт) |
macro glpush GLDoubleVar { |
19,8 → 20,6 |
push dword[GLDoubleVar] |
} |
align 4 |
image_data_toolbar dd 0 |
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
align 4 |
407,7 → 406,7 |
;-------------------------------------------------- |
align 4 |
import_lib_tinygl: |
import_tinygl: |
macro E_LIB n |
{ |
531,14 → 530,6 |
lib_name_1 db 'buf2d.obj',0 |
system_dir_2 db '/sys/lib/' |
lib_name_2 db 'libimg.obj',0 |
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0 |
;-------------------------------------------------- |
txt_scale: |
576,17 → 567,15 |
align 4 |
l_libs_start: |
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ |
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i |
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ |
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i |
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\ |
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl |
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d |
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg |
l_libs_end: |
align 4 |
i_end: |
ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
image_data_toolbar dd 0 |
dr_figure dd 0 |
qObj dd 0 |
TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) |
596,8 → 585,8 |
run_file_70 FileInfoBlock |
sc system_colors |
align 16 |
cur_dir_path rb 4096 |
file_name rb 4096 |
rb 4096 |
stacktop: |
cur_dir_path rb 4096 |
file_name rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/textures1.asm |
---|
7,11 → 7,12 |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../load_img.inc' |
include '../../../../../load_lib.mac' |
include '../opengl_const.inc' |
include '../zbuffer.inc' |
include '../../../../../develop/info3ds/info_fun_float.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
;Макрос для параметров типа double (8 байт) |
macro glpush GLDoubleVar { |
19,8 → 20,6 |
push dword[GLDoubleVar] |
} |
align 4 |
image_data_toolbar dd 0 |
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
align 4 |
337,7 → 336,7 |
;-------------------------------------------------- |
align 4 |
import_lib_tinygl: |
import_tinygl: |
macro E_LIB n |
{ |
461,14 → 460,6 |
lib_name_1 db 'buf2d.obj',0 |
system_dir_2 db '/sys/lib/' |
lib_name_2 db 'libimg.obj',0 |
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0 |
;-------------------------------------------------- |
txt_scale: |
512,17 → 503,15 |
align 4 |
l_libs_start: |
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ |
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i |
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ |
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i |
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\ |
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl |
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d |
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg |
l_libs_end: |
align 4 |
i_end: |
ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
image_data_toolbar dd 0 |
dr_figure dd 0 |
qObj dd 0 |
TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) |
532,8 → 521,8 |
run_file_70 FileInfoBlock |
sc system_colors |
align 16 |
cur_dir_path rb 4096 |
file_name rb 4096 |
rb 4096 |
stacktop: |
cur_dir_path rb 4096 |
file_name rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/examples/textures2.asm |
---|
7,11 → 7,12 |
include '../../../../../macros.inc' |
include '../../../../../KOSfuncs.inc' |
include '../../../../../load_img.inc' |
include '../../../../../load_lib.mac' |
include '../opengl_const.inc' |
include '../zbuffer.inc' |
include '../../../../../develop/info3ds/info_fun_float.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
;Макрос для параметров типа double (8 байт) |
macro glpush GLDoubleVar { |
19,8 → 20,6 |
push dword[GLDoubleVar] |
} |
align 4 |
image_data_toolbar dd 0 |
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
align 4 |
294,7 → 293,7 |
;-------------------------------------------------- |
align 4 |
import_lib_tinygl: |
import_tinygl: |
macro E_LIB n |
{ |
418,14 → 417,6 |
lib_name_1 db 'buf2d.obj',0 |
system_dir_2 db '/sys/lib/' |
lib_name_2 db 'libimg.obj',0 |
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0 |
head_f_i: |
head_f_l db '"System error',0 |
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0 |
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0 |
;-------------------------------------------------- |
txt_scale: |
469,17 → 460,15 |
align 4 |
l_libs_start: |
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ |
err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i |
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ |
err_msg_found_lib_1, head_f_l, import_buf2d, err_msg_import_1,head_f_i |
lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\ |
err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl |
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_buf2d |
lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg |
l_libs_end: |
align 4 |
i_end: |
ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
image_data_toolbar dd 0 |
qObj dd 0 |
TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) |
texture dd 0 ;указатель на память с текстурой |
488,8 → 477,8 |
run_file_70 FileInfoBlock |
sc system_colors |
align 16 |
cur_dir_path rb 4096 |
file_name rb 4096 |
rb 4096 |
stacktop: |
cur_dir_path rb 4096 |
file_name rb 4096 |
mem: |
/programs/develop/libraries/TinyGL/asm_fork/info_fun_float.inc |
---|
5,7 → 5,7 |
; ®«¨ç¥á⢮ § ª®¢ ç¨á« ¯®á«¥ § ¯ï⮩ (1-17) |
NumberSymbolsAD DW 5 |
; ®áâ âë (10 ¢ á⥯¥¨ N) |
MConst DQ 1.0E1,1.0E2,1.0E3,1.0E4,1.0E5 |
MConst: DQ 1.0E1,1.0E2,1.0E3,1.0E4,1.0E5 |
DQ 1.0E6,1.0E7,1.0E8,1.0E9,1.0E10 |
DQ 1.0E11,1.0E12,1.0E13,1.0E14,1.0E15 |
DQ 1.0E16,1.0E17,1.0E18,1.0E19,1.0E20 |
31,6 → 31,7 |
DQ 1.0E116,1.0E117,1.0E118,1.0E119,1.0E120 |
DQ 1.0E121,1.0E122,1.0E123,1.0E124,1.0E125 |
DQ 1.0E126,1.0E127,1.0E128 |
.end: |
; ¨á«® á ¯« ¢ î饩 § ¯ï⮩ ¤¢®©®© â®ç®á⨠|
Data_Double DQ ? |
; ¨á«® ¢ BCD-ä®à¬ ⥠|
39,9 → 40,10 |
Data_Flag DB ? |
; ª १ã«ìâ â (¥á«¨ ¥ 0 - ®âà¨æ ⥫쮥 ç¨á«®) |
Data_Sign DB ? |
; ª १ã«ìâ â - 0 ¤«ï ..e+.. ¨ 1 ¤«ï ..e-.. |
Data_Sign_Exp DB ? |
db 0 ;㪠§ ⥫ì ᤢ¨£ ¢ ¯ ¬ï⨠|
align 4 |
; âப ¤«ï åà ¥¨ï ç¨á« ¢ ª®¤¥ ASCII |
Data_String DB 32 DUP (?) |
59,10 → 61,11 |
;* ëå®¤ë¥ ¯ à ¬¥âàë: * |
;* Data_String - áâப -१ã«ìâ â. * |
;******************************************************* |
align 4 |
DoubleFloat_to_String: |
pushad |
; ¥§ã«ìâ â § ¯¨áë¢ âì ¢ áâபã Data_String |
lea EDI, [Data_String] |
mov EDI, Data_String |
; ¤¢¨£ ¥¬ ç¨á«® ¢«¥¢® NumberSymbolsAD |
; ¤¥áïâ¨çëå à §à冷¢ |
74,9 → 77,7 |
je .NoShifts ;¥â æ¨äà ¯®á«¥ § ¯ï⮩ |
jl .Error ;®è¨¡ª |
dec BX |
shl BX, 3 ;㬮¦ ¥¬ 8 |
lea eax,[MConst] |
add EBX, eax |
lea ebx,[MConst+8*ebx] |
fmul qword [EBX] ;㬮¦¨âì ª®áâ âã |
.NoShifts: |
; §¢«¥çì ç¨á«® ¢ ª®¤¥ BCD |
130,8 → 131,8 |
stosb |
; ¡à âì ¥§ ç 騥 㫨 á«¥¢ |
lea EDI, [Data_String] |
lea ESI, [Data_String] |
mov EDI, Data_String |
mov ESI, Data_String |
; யãáâ¨âì § ª ç¨á« , ¥á«¨ ® ¥áâì |
cmp byte [ESI],'-' |
jne .N2 |
151,10 → 152,11 |
; 訡ª - ¥â § ç é¨å æ¨äà |
jmp .Error |
; ª®¯¨à®¢ âì § ç éãî ç áâì ç¨á« ¢ ç «® áâப¨ |
align 4 |
.N4: rep movsb |
jmp .End |
; 訡ª |
align 4 |
.Error: |
mov AL,'E' |
stosb |
166,6 → 168,7 |
stosb |
jmp .End |
; ¥à¥¯®«¥¨¥ à §à冷© á¥âª¨ |
align 4 |
.Overflow: |
mov AL,'#' |
stosb |
172,6 → 175,7 |
xor AL,AL |
stosb |
; ®¥æ ¯à®æ¥¤ãàë |
align 4 |
.End: |
popad |
ret |
184,6 → 188,7 |
;* ëå®¤ë¥ ¯ à ¬¥âàë: * |
;* Data_Double - ç¨á«® ¢ ¤¢®¨ç®¬ ª®¤¥. * |
;**************************************************** |
align 4 |
String_to_DoubleFloat: |
pushad |
cld |
193,110 → 198,200 |
mov word [Data_BCD+8],0 |
; ç¨é ¥¬ ¡ ©â § ª |
mov [Data_Sign],0 |
; ®á¨¬ ¢ SI 㪠§ ⥫ì áâபã |
lea ESI, [Data_String] |
; ®á¨¬ ¢ esi 㪠§ ⥫ì áâபã |
mov esi, Data_String |
; யã᪠¥¬ ¯à®¡¥«ë ¯¥à¥¤ ç¨á«®¬ |
mov ecx,64 ;§ é¨â ®â § 横«¨¢ ¨ï |
.ShiftIgnore: |
lodsb |
cmp AL,' ' |
cmp al,' ' |
jne .ShiftIgnoreEnd |
loop .ShiftIgnore |
jmp .Error |
align 4 |
.ShiftIgnoreEnd: |
; ஢¥à塞 § ª ç¨á« |
cmp AL,'-' |
cmp al,'-' |
jne .Positive |
mov [Data_Sign],80h |
lodsb |
.Positive: |
mov [Data_Flag],0 ;¯à¨§ ª «¨ç¨ï â®çª¨ |
mov DX,0 ;¯®§¨æ¨ï â®çª¨ |
xor edx,edx ;¯®§¨æ¨ï â®çª¨ |
mov ecx,18 ;¬ ªá. ç¨á«® à §à冷¢ |
align 4 |
.ASCIItoBCDConversion: |
cmp AL,'.' ;â®çª ? |
cmp al,'.' ;â®çª ? |
jne .NotDot |
cmp [Data_Flag],0 ;â®çª ¥ ¢áâà¥ç « áì? |
jne .Error |
jne .Error ;¥á«¨ â®çª 㦥 ¡ë« |
mov [Data_Flag],1 |
lodsb |
cmp AL,0 ;ª®¥æ áâப¨? |
jne .NotDot |
or al,al ;ª®¥æ áâப¨? |
jnz .NotDot |
jmp .ASCIItoBCDConversionEnd |
align 4 |
.NotDot: |
; ¢¥«¨ç¨âì 1 § 票¥ ¯®§¨æ¨¨ â®çª¨, |
; ¥á«¨ ® ¥é¥ ¥ ¢áâà¥ç « áì |
cmp [Data_Flag],0 |
jnz .Figures |
inc DX |
inc edx |
.Figures: |
cmp al,'e' |
je .exp_form |
cmp al,'E' |
jne @f |
.exp_form: |
call string_ExpForm ;¥á«¨ ç¨á«® ¢ ä®à¬ ⥠..e.. |
or al,al |
jnz .Error |
jmp .ASCIItoBCDConversionEnd |
@@: |
; ¨¬¢®«ë ç¨á« ¤®«¦ë ¡ëâì æ¨äà ¬¨ |
cmp AL,'0' |
cmp al,'0' |
jb .Error |
cmp AL,'9' |
cmp al,'9' |
ja .Error |
; ¨è¥¬ ®ç¥à¥¤ãî æ¨äàã ¢ ¬« ¤èãî â¥âà ¤ã BCD |
and AL,0Fh |
or byte [Data_BCD],AL |
and al,15 ;ᨬ¢®«ë 0-9 ¯¥à¥¢®¤¨¬ ¢ ç¨á«® |
or byte [Data_BCD],al |
; ஢¥àª ª®¥æ áâப¨ |
cmp byte [ESI],0 |
cmp byte [esi],0 |
je .ASCIItoBCDConversionEnd |
; ¤¢¨£ ¥¬ BCD 4 à §àï¤ ¢«¥¢® |
; (ᤢ¨£ ¥¬ áâ à訥 2 ¡ ©â ) |
mov AX,word [Data_BCD+6] |
shld word [Data_BCD+8],AX,4 |
mov ax,word [Data_BCD+6] |
shld word [Data_BCD+8],ax,4 |
; (ᤢ¨£ ¥¬ á।¨¥ 4 ¡ ©â ) |
mov EAX, dword [Data_BCD] |
shld dword [Data_BCD+4],EAX,4 |
mov eax,dword [Data_BCD] |
shld dword [Data_BCD+4],eax,4 |
; (ᤢ¨£ ¥¬ ¬« ¤è¨¥ 4 ¡ ©â ) |
shl dword [Data_BCD],4 |
; £à㦠¥¬ á«¥¤ãî騩 ᨬ¢®« ¢ AL |
lodsb |
loop .ASCIItoBCDConversion |
loop .ASCIItoBCDConversion ;¥á«¨ ¥ ª®¬¯¨«. â® ¯®áâ ¢¨âì dec ecx, jnz ... |
; ᫨ 19-© ᨬ¢®« ¥ 0 ¨ ¥ â®çª , |
; â® ®è¨¡ª ¯¥à¥¯®«¥¨ï |
cmp AL,'.' |
cmp al,'.' |
jne .NotDot2 |
inc ecx |
inc ecx ;¯à®¯ã᪠â®çª¨ ¢ ª®æ¥ ®ç¥ì ¡®«ì讣® ç¨á« |
lodsb |
.NotDot2: |
cmp AL,0 |
jne .Error ;¯¥à¥¯®«¥¨¥ à §à冷© á¥âª¨ |
or al,al ;¯¥à¥¯®«¥¨¥ à §à冷© á¥âª¨? |
jz .ASCIItoBCDConversionEnd |
align 4 |
.Error: ; ਠ«î¡®© ®è¨¡ª¥ ®¡ã«¨âì १ã«ìâ â |
fldz ;§ ¥á⨠®«ì á á⥪ ᮯà®æ¥áá®à |
fstp [Data_Double] |
jmp .End |
; BCD |
.ASCIItoBCDConversionEnd: |
; ¯¨á âì § ª ¢ áâ à訩 ¡ ©â |
mov AL,[Data_Sign] |
mov byte [Data_BCD+9],AL |
mov al,[Data_Sign] |
mov byte [Data_BCD+9],al |
; ¡à®á¨âì ॣ¨áâàë ᮯà®æ¥áá®à |
fninit |
; £à㧨âì ¢ ᮯà®æ¥áá®à ç¨á«® ¢ BCD-ä®à¬ ⥠|
fbld [Data_BCD] |
; ëç¨á«¨âì ®¬¥à ¤¥«¨â¥«ï |
mov EBX,18+1 |
sub BX,CX |
sub BX,DX |
cmp EBX,0 |
je .NoDiv |
dec EBX |
shl EBX,3 ;㬮¦ ¥¬ 8 |
lea eax,[MConst] |
add EBX,eax |
fdiv qword [EBX] ;à §¤¥«¨âì ª®áâ âã |
; ëç¨á«¨âì ®¬¥à ¤¥«¨â¥«ï ¨«¨ ¬®¦¨â¥«ï |
lea ebx,[ecx+edx-18] |
cmp ebx,0 |
jle .NoMul ;¥á«¨ ç¨á«® e-.. |
dec ebx |
jz .NoDiv ;¥á«¨ ç¨á«® e+0 |
dec ebx |
lea ebx,[MConst+8*ebx] |
cmp ebx,MConst.end |
jl @f |
ffree st0 |
fincstp |
jmp .Error ;¥á«¨ ®ç¥ì ¡®«ì讥 ç¨á«® e+** |
@@: |
fmul qword [ebx] ;㬮¦¨âì ª®áâ âã (¤«ï ç¨á¥« á ¯à¨áâ ¢ª®© e+..) |
jmp .NoDiv |
.NoMul: |
neg ebx |
lea ebx,[MConst+8*ebx] |
cmp ebx,MConst.end |
jl @f |
ffree st0 |
fincstp |
jmp .Error ;¥á«¨ ®ç¥ì ¬ «¥ìª®¥ ç¨á«® e-** |
@@: |
fdiv qword [ebx] ;à §¤¥«¨âì ª®áâ âã |
.NoDiv:; ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç®¬ ä®à¬ ⥠|
fstp [Data_Double] |
jmp .End |
.Error:; ਠ«î¡®© ®è¨¡ª¥ ®¡ã«¨âì १ã«ìâ â |
fldz ;§ ¥á⨠®«ì á á⥪ ᮯà®æ¥áá®à |
fstp [Data_Double] |
.End: |
popad |
ret |
;output: |
; eax - 1 if error |
; edx += size |
align 4 |
proc str_cat, str1:dword, str2:dword |
push eax ecx edi esi |
proc string_ExpForm uses ebx |
mov [Data_Sign_Exp],0 |
xor eax,eax |
lodsb |
cmp al,'+' |
jne @f |
lodsb |
@@: |
cmp al,'-' |
jne @f |
inc [Data_Sign_Exp] |
lodsb |
@@: |
xor ebx,ebx |
.cycle0: |
cmp al,0 |
je .cycle0end |
cmp al,9 |
je .cycle0end |
cmp al,10 |
je .cycle0end |
cmp al,13 |
je .cycle0end |
cmp al,' ' |
je .cycle0end |
cmp al,'0' |
jb .Error |
cmp al,'9' |
ja .Error |
imul ebx,10 |
and eax,15 ;ᨬ¢®«ë 0-9 ¯¥à¥¢®¤¨¬ ¢ ç¨á«® |
add ebx,eax |
lodsb |
jmp .cycle0 |
.cycle0end: |
cmp ebx,328 ;308 - ¬ ªá. à §¬¥à á⥯¥¨ ¤«ï double + 20 - ç¨á«® à §à冷¢ ¢ BCD |
ja .Error |
cmp [Data_Sign_Exp],0 |
je @f |
neg ebx |
@@: |
cmp [Data_Flag],0 ;â®çª ¥ ¢áâà¥ç « áì? |
jne @f |
dec edx |
@@: |
add edx,ebx |
xor eax,eax |
jmp @f |
.Error: |
xor eax,eax |
inc eax |
@@: |
ret |
endp |
align 4 |
proc str_cat uses eax ecx edi esi, str1:dword, str2:dword |
mov esi,dword[str2] |
stdcall str_len,esi |
mov ecx,eax |
306,7 → 401,6 |
add edi,eax |
cld |
repne movsb |
pop esi edi ecx eax |
ret |
endp |
323,4 → 417,34 |
@@: |
sub eax,[str1] |
ret |
endp |
align 4 |
proc String_crop_0 uses eax ebx ecx edi |
mov edi,Data_String |
mov al,'.' |
mov ecx,32 |
repne scasb |
mov ebx,edi |
mov edi,Data_String |
xor al,al |
mov ecx,32 |
repne scasb |
cmp ebx,edi |
jg .end_f |
dec edi |
.cycle0: |
dec edi |
cmp edi,Data_String |
jle .end_f |
cmp byte[edi],'0' |
jne .cycle0end |
mov byte[edi],0 |
jmp .cycle0 |
.cycle0end: |
cmp byte[edi],'.' |
jne .end_f |
mov byte[edi],0 |
.end_f: |
ret |
endp |
/programs/develop/libraries/TinyGL/asm_fork/tinygl.asm |
---|
105,12 → 105,6 |
end if |
; *** |
glVertex2d: ;(double ,double) |
glVertex2dv: ;(double *) |
glVertex3d: ;(double ,double ,double) |
glVertex3dv: ;(double *) |
glVertex4d: ;(double ,double ,double, double ) |
glVertex4dv: ;(double *) |
glColor3d: ;(double ,double ,double) |
glColor3dv: ;(double *) |
glColor4d: ;(double ,double ,double, double ) |
/programs/develop/libraries/libs-dev/libimg/png/libpng/png.asm |
---|
48,8 → 48,8 |
png_debug 1, 'in png_set_sig_bytes' |
mov edi,[png_ptr] |
cmp edi,0 |
je .end_f ;if (..==0) return |
or edi,edi |
jz .end_f ;if (..==0) return |
mov eax,[num_bytes] |
cmp eax,0 |
101,13 → 101,10 |
align 4 |
proc png_zalloc uses edx ecx, png_ptr:dword, items:dword, size:dword |
cmp dword[png_ptr],0 |
jne @f |
xor eax,eax |
jmp .end_f ;if (..==0) return 0 |
@@: |
cmp dword[png_ptr],eax |
je .end_f ;if (..==0) return 0 |
xor eax,eax |
not eax |
xor edx,edx |
mov ecx,[size] |
161,8 → 158,8 |
endl |
mov edi,[png_ptr] |
PNG_CHUNK_ANCILLARY [edi+png_struct.chunk_name] |
cmp eax,0 ;if (..!=0) |
je @f |
or eax,eax ;if (..!=0) |
jz @f |
mov eax,[edi+png_struct.flags] |
and eax,PNG_FLAG_CRC_ANCILLARY_MASK |
cmp eax,PNG_FLAG_CRC_ANCILLARY_USE or PNG_FLAG_CRC_ANCILLARY_NOWARN |
340,12 → 337,12 |
; Call the general version checker (shared with read and write code): |
stdcall png_user_version_check, ebx, [user_png_ver] |
cmp eax,0 |
je .end0 ;if (..!=0) |
or eax,eax |
jz .end0 ;if (..!=0) |
stdcall png_malloc_warn, ebx, sizeof.png_struct |
;eax = png_ptr |
cmp eax,0 |
je .end0 ;if (..!=0) |
or eax,eax |
jz .end0 ;if (..!=0) |
; png_ptr->zstream holds a back-pointer to the png_struct, so |
; this can only be done now: |
379,16 → 376,12 |
; Allocate the memory for an info_struct for the application. |
;png_infop (png_structrp png_ptr) |
align 4 |
proc png_create_info_struct uses ebx ecx edi, png_ptr:dword |
proc png_create_info_struct uses ecx edi, png_ptr:dword |
png_debug 1, 'in png_create_info_struct' |
;ebx - info_ptr dd ? ;png_inforp |
mov edi,[png_ptr] |
cmp edi,0 |
jne @f ;if (..==0) return 0 |
xor eax,eax |
jmp .end_f |
@@: |
mov eax,[png_ptr] |
or eax,eax |
jz .end_f ;if (..==0) return 0 |
; Use the internal API that does not (or at least should not) error out, so |
; that this call always returns ok. The application typically sets up the |
395,18 → 388,15 |
; error handling *after* creating the info_struct because this is the way it |
; has always been done in 'example.asm'. |
stdcall png_malloc_base, edi, sizeof.png_info_def |
mov ebx,eax |
cmp eax,0 |
je @f |
stdcall png_malloc_base, eax, sizeof.png_info_def |
or eax,eax |
jz .end_f |
push eax |
mov edi,eax |
xor eax,eax |
mov ecx,sizeof.png_info_def |
rep stosb ;memset(... |
@@: |
mov eax,ebx |
pop eax |
.end_f: |
ret |
endp |
428,8 → 418,8 |
je .end_f ;if (..==0) return |
mov edi,[info_ptr_ptr] |
cmp edi,0 ;if (..!=0) |
je .end_f |
or edi,edi ;if (..!=0) |
jz .end_f |
; Do this first in case of an error below; if the app implements its own |
; memory management this can lead to png_free calling png_error, which |
; will abort this routine and return control to the app error handler. |
490,11 → 480,11 |
png_debug 1, 'in png_data_freer' |
mov edi,[png_ptr] |
cmp edi,0 |
je .end_f |
or edi,edi |
jz .end_f |
mov esi,[info_ptr] |
cmp esi,0 |
je .end_f ;if (..==0 || ..==0) return |
or esi,esi |
jz .end_f ;if (..==0 || ..==0) return |
; if (freer == PNG_DESTROY_WILL_FREE_DATA) |
; info_ptr->free_me |= mask; |
514,11 → 504,11 |
png_debug 1, 'in png_free_data' |
mov edi,[png_ptr] |
cmp edi,0 |
je .end_f |
or edi,edi |
jz .end_f |
mov esi,[info_ptr] |
cmp esi,0 |
je .end_f ;if (..==0 || ..==0) return |
or esi,esi |
jz .end_f ;if (..==0 || ..==0) return |
if PNG_TEXT_SUPPORTED eq 1 |
; Free text item num or (if num == -1) all text items |
722,8 → 712,8 |
align 4 |
proc png_get_io_ptr, png_ptr:dword |
mov eax,[png_ptr] |
cmp eax,0 |
je @f ;if (..==0) return 0 |
or eax,eax |
jz @f ;if (..==0) return 0 |
mov eax,[eax+png_struct.io_ptr] |
@@: |
ret |
742,8 → 732,8 |
png_debug 1, 'in png_init_io' |
mov edi,[png_ptr] |
cmp edi,0 |
je @f ;if (..==0) return |
or edi,edi |
jz @f ;if (..==0) return |
mov eax,[fp] |
mov [edi+png_struct.io_ptr],eax |
@@: |
967,8 → 957,8 |
; bytep p, p_end; |
mov edi,[png_ptr] |
cmp edi,0 |
je .end0 |
or edi,edi |
jz .end0 |
cmp dword[chunk_name],0 |
je .end0 |
cmp dword[edi+png_struct.num_chunk_list],0 |
1020,8 → 1010,8 |
align 4 |
proc png_reset_zstream, png_ptr:dword |
mov eax,[png_ptr] |
cmp eax,0 |
jne @f ;if (..==0) |
or eax,eax |
jnz @f ;if (..==0) |
mov eax,Z_STREAM_ERROR |
jmp .end_f |
@@: |
1289,8 → 1279,8 |
align 4 |
proc png_colorspace_sync uses ecx edi esi, png_ptr:dword, info_ptr:dword |
mov edi,[info_ptr] |
cmp edi,0 |
je @f ;if (..==0) ;reduce code size; check here not in the caller |
or edi,edi |
jz @f ;if (..==0) ;reduce code size; check here not in the caller |
mov ecx,sizeof.png_colorspace |
mov esi,[png_ptr] |
add esi,png_struct.colorspace |
1935,8 → 1925,8 |
message rb 196 ;char[] ;see below for calculation |
endl |
mov eax,[colorspace] |
cmp eax,0 |
je @f ;if (..!=0) |
or eax,eax |
jz @f ;if (..!=0) |
or word[eax+png_colorspace.flags], PNG_COLORSPACE_INVALID |
@@: |
2857,8 → 2847,8 |
@@: |
end if |
cmp ebx,0 |
je @f |
or ebx,ebx |
jz @f |
png_error edi, 'Invalid IHDR data' |
@@: |
ret |
4432,8 → 4422,8 |
align 4 |
proc png_set_option uses ecx, png_ptr:dword, option:dword, onoff:dword |
mov eax,[png_ptr] |
cmp eax,0 |
je @f |
or eax,eax |
jz @f |
mov ecx,[option] |
cmp ecx,0 |
jl @f |
4695,8 → 4685,8 |
; png_safe_execute will call this API after the return. |
mov ebx,[image] |
cmp ebx,0 |
je @f |
or ebx,ebx |
jz @f |
cmp dword[ebx+png_image.opaque],0 |
je @f |
mov eax,[ebx+png_image.opaque] |
/programs/media/log_el/trunk/le_libs.inc |
---|
/programs/media/log_el/trunk/log_el.asm |
---|
1,5 → 1,5 |
use32 |
org 0x0 |
org 0 |
db 'MENUET01' ;¨¤¥â¨ä. ¨á¯®«ï¥¬®£® ä ©« ¢á¥£¤ 8 ¡ ©â |
dd 1,start,i_end,mem,stacktop,0,sys_path |
42,11 → 42,12 |
include '../../../proc32.inc' |
include '../../../KOSfuncs.inc' |
include '../../../load_img.inc' |
include '../../../load_lib.mac' |
include '../../../develop/libraries/box_lib/trunk/box_lib.mac' |
include 'le_pole.inc' |
include 'le_signal.inc' |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
caption db '®£¨ç¥áª¨¥ í«¥¬¥âë 13.02.16',0 ;¯®¤¯¨áì ®ª |
panel_0_coord_top equ 5 ;¢¥àåïï ª®®à¤¨ â 0-£® àï¤ ¯ ¥«¨ ¨áâà㬥⮢ |
171,13 → 172,7 |
0,-1, 1, 0 |
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 |
image_data_toolbar dd 0 |
icon_tl_sys dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
icon_toolbar dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢ |
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥ë¬¨ á¥à묨 ¨§®¡à ¦¥¨ï¬¨ ¢ ä®à¬ ⥠24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë |
cursors_count equ 4 |
ini_name db 'log_el.ini',0 ;¨¬ï ä ©« |
196,7 → 191,7 |
start: |
load_libraries l_libs_start,l_libs_end |
;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì ¡¨¡«¨®â¥ª |
mov ebp,lib_7 |
mov ebp,lib4 |
cmp dword [ebp+ll_struc_size-4],0 |
jz @f |
mcall SF_TERMINATE_PROCESS |
205,7 → 200,7 |
mcall SF_SET_EVENTS_MASK,0x27 |
;*** áç¨âë¢ ¨¥ áâ஥ª ¨§ *.ini ä ©« |
copy_path ini_name,sys_path,file_name,0x0 |
copy_path ini_name,sys_path,file_name,0 |
stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_bkgnd,ini_def_c_bkgnd |
mov dword[buf_0.color],eax |
642,7 → 637,7 |
mcall SF_CREATE_WINDOW, (20 shl 16)+580,(20 shl 16)+415 |
; *** ᮧ¤ ¨¥ ª®¯®ª ¯ ¥«ì *** |
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_0_coord_top shl 16)+20, 3,, [sc.work_button] |
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_0_coord_top shl 16)+20, 3, [sc.work_button] |
add ebx,25 shl 16 |
mov edx,4 |
758,27 → 753,26 |
stdcall pole_draw_pok, pole |
; *** ᮧ¤ ¨¥ ª®¯®ª ãáâ ®¢ª¨ ᨣ «®¢ set_0 ¨ set_1 *** |
mov esi,[sc.work_button] |
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20 |
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20, [sc.work_button] |
add ebx,25 shl 16 |
mov edx,21 |
inc edx |
int 0x40 |
add ebx,30 shl 16 |
mov edx,22 |
inc edx |
int 0x40 |
add ebx,25 shl 16 |
mov edx,23 |
inc edx |
int 0x40 |
add ebx,25 shl 16 |
mov edx,24 |
inc edx |
int 0x40 |
add ebx,25 shl 16 |
mov edx,25 |
inc edx |
int 0x40 |
mov ecx,[sc.work_text] |
808,8 → 802,7 |
int 0x40 |
; *** ᮧ¤ ¨¥ ª®¯®ª à¨á®¢ ¨ï ¯à®¢®¤ *** |
mov esi,[sc.work_button] |
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30 |
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30, [sc.work_button] |
add ebx,30 shl 16 |
mov edx,31 |
1043,11 → 1036,6 |
color_captions dd 0x808080 |
align 4 |
open_file_lif: |
rb 2*4096 ;®¡« áâì ¤«ï ®âªàëâ¨ï ä ©«®¢ |
.end: |
align 4 |
but_open_file: |
pushad |
copy_path open_dialog_name,communication_area_default_path,file_name,0 |
1080,8 → 1068,8 |
mov esi,txt_size |
call str_analiz_r |
cmp edi,0 |
je @f |
or edi,edi |
jz @f |
stdcall str_len,esi |
add edi,eax |
stdcall conv_str_to_int,edi |
1104,8 → 1092,8 |
mov esi,txt_elements |
call str_analiz_r |
cmp edi,0 |
je .end_elems |
or edi,edi |
jz .end_elems |
stdcall str_len,esi |
add edi,eax |
stdcall conv_str_to_int,edi |
1416,8 → 1404,8 |
inc edx |
push edx |
stdcall pole_cell_find, edi |
cmp eax,0 |
je @f |
or eax,eax |
jz @f |
or dword[napr],1 |
@@: |
1427,8 → 1415,8 |
mov edx,[ebx+offs_cell_x] |
push edx |
stdcall pole_cell_find, edi |
cmp eax,0 |
je @f |
or eax,eax |
jz @f |
or dword[napr],2 |
@@: |
1438,8 → 1426,8 |
dec edx |
push edx |
stdcall pole_cell_find, edi |
cmp eax,0 |
je @f |
or eax,eax |
jz @f |
or dword[napr],4 |
@@: |
1449,8 → 1437,8 |
mov edx,[ebx+offs_cell_x] |
push edx |
stdcall pole_cell_find, edi |
cmp eax,0 |
je @f |
or eax,eax |
jz @f |
or dword[napr],8 |
@@: |
1970,14 → 1958,12 |
endp |
align 4 |
proc mem_copy, destination:dword, source:dword, len:dword |
push ecx esi edi |
proc mem_copy uses ecx esi edi, destination:dword, source:dword, len:dword |
cld |
mov esi, dword[source] |
mov edi, dword[destination] |
mov ecx, dword[len] |
mov edi,[destination] |
mov esi,[source] |
mov ecx,[len] |
rep movsb |
pop edi esi ecx |
ret |
endp |
2290,8 → 2276,8 |
add ecx,[buf_curs.data] |
mcall SF_MOUSE_GET,SSF_LOAD_CURSOR |
cmp eax,0 |
je @f |
or eax,eax |
jz @f |
mov [cursor_pointer],eax |
mcall SF_MOUSE_GET,SSF_SET_CURSOR,[cursor_pointer] |
@@: |
2339,15 → 2325,6 |
include 'le_libs.inc' |
mouse_dd dd 0x0 |
sc system_colors |
last_time dd 0 |
align 16 |
procinfo process_information |
align 4 |
buf_0: dd 0 ; |
.l: dw 170 ;+4 left |
2360,8 → 2337,7 |
align 4 |
buf_font: ;¡ãä¥à á® èà¨ä⮬ |
dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 25 ;+4 left |
dw 25 ;+6 top |
dw 25,25 ;+4 left,top |
dd 96 ;+8 w |
dd 144 ;+12 h |
dd 0 ;+16 color |
2370,8 → 2346,7 |
align 4 |
buf_curs: ;¡ãä¥à á ªãàá®à ¬¨ |
.data: dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 0 ;+4 left |
dw 0 ;+6 top |
dw 0,0 ;+4 left,top |
dd 32 ;+8 w |
dd 32*cursors_count ;+12 h |
dd 0 ;+16 color |
2380,8 → 2355,7 |
align 4 |
buf_curs_8: ;¡ãä¥à á ªãàá®à ¬¨ |
.data: dd 0 ;㪠§ â¥«ì ¡ãä¥à ¨§®¡à ¦¥¨ï |
dw 0 ;+4 left |
dw 0 ;+6 top |
dw 0,0 ;+4 left,top |
dd 32 ;+8 w |
dd 32*cursors_count ;+12 h |
dd 0 ;+16 color |
2618,13 → 2592,22 |
align 16 |
i_end: |
image_data_toolbar dd 0 |
icon_tl_sys dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï á¨á⥬ëå ¨ª®®ª |
icon_toolbar dd 0 ;㪠§ â¥«ì ¯ ¬ïâì ¤«ï åà ¥¨ï ¨ª®®ª ®¡ê¥ªâ®¢ |
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥ë¬¨ á¥à묨 ¨§®¡à ¦¥¨ï¬¨ ¢ ä®à¬ ⥠24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë |
mouse_dd dd 0 |
last_time dd 0 |
sc system_colors |
procinfo process_information |
run_file_70 FileInfoBlock |
open_file_lif: |
rb 2*4096 ;®¡« áâì ¤«ï ®âªàëâ¨ï ä ©«®¢ |
.end: |
rb 1024 |
stacktop: |
sys_path rb 1024 |
file_name: |
rb 1024 ;4096 |
library_path rb 1024 |
file_name rb 2048 ;4096 |
plugin_path rb 4096 |
openfile_path rb 4096 |
filename_area rb 256 |
/programs/other/ha/HACONFIG.ASM |
---|
44,8 → 44,9 |
include '../../macros.inc' |
include '../../proc32.inc' |
include '../../dll.inc' |
include '../../KOSfuncs.inc' |
include '../../develop/libraries/box_lib/trunk/box_lib.mac' ;êîìïîíåíòû checkBox è editBox |
include '../../develop/libraries/box_lib/load_lib.mac' ;ìàêðîñ äëÿ çàãðóçêè áèáëèîòåê |
include '../../load_lib.mac' ;ìàêðîñ äëÿ çàãðóçêè áèáëèîòåê |
@use_library |
KMENUITEM_NORMAL equ 0 |
1431,13 → 1432,6 |
valueModeMenu2 db '०¨¬ £®àï祩 ª« ¢¨è¨ ',0 |
valueModeMenu3 db '०¨¬ ¦¥áâ ¯® ª« ¢¨è¥ ªâ¨¢ 樨',0 |
head_f_i: |
head_f_l db '¨á⥬ ï ®è¨¡ª ',0 |
err_message_found_lib0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
err_message_found_lib1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'kmenu.obj',39,0 |
err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0 |
hkCaption: db '« ¢¨è :',0 |
;hkHint: db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã',0 |
radiusCaption: db ' ¤¨ãá:',0 |
1468,13 → 1462,6 |
valueModeMenu2 db 'hot key mode ',0 |
valueModeMenu3 db 'activation key gesture mode ',0 |
head_f_i: |
head_f_l db 'System error',0 |
err_message_found_lib0 db 'Could not find library ',39,'proc_lib.obj',39,0 |
err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0 |
err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0 |
err_message_import1 db 'Error importing library ',39,'kmenu',39,0 |
hkCaption: db 'Key:',0 |
;hkHint: db 'press any key',0 |
radiusCaption: db 'Radius:',0 |
1717,16 → 1704,9 |
.y dw 200 |
align 4 |
proclib_import: ;îïèñàíèå ýêñïîðòèðóåìûõ ôóíêöèé |
OpenDialog_Init dd aOpenDialog_Init |
OpenDialog_Start dd aOpenDialog_Start |
dd 0,0 |
aOpenDialog_Init db 'OpenDialog_init',0 |
aOpenDialog_Start db 'OpenDialog_start',0 |
system_dir0 db '/sys/lib/' |
lib0_name db 'proc_lib.obj',0 |
system_dir1 db '/sys/lib/' |
lib1_name db 'kmenu.obj',0 |
symbolDownArrow db 25,0 |
1733,8 → 1713,8 |
;library structures |
l_libs_start: |
lib0 l_libs lib0_name, sys_path, file_name, system_dir0, err_message_found_lib0, head_f_l, proclib_import,err_message_import0, head_f_i |
lib1 l_libs lib1_name, sys_path, file_name, system_dir0, err_message_found_lib1, head_f_l, import_libkmenu,err_message_import1,head_f_i |
lib0 l_libs lib0_name, file_name, system_dir0, import_proclib |
lib1 l_libs lib1_name, file_name, system_dir1, import_libkmenu |
load_lib_end: |
1749,6 → 1729,14 |
editRadius edit_box 40,(buttonHotKeyX + buttonHotKeyWidth + 20),buttonModeY, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, 4, radiusBuffer.data, mouse_dd, ed_figure_only, edMax, edMax |
align 4 |
import_proclib: |
OpenDialog_Init dd aOpenDialog_Init |
OpenDialog_Start dd aOpenDialog_Start |
dd 0,0 |
aOpenDialog_Init db 'OpenDialog_init',0 |
aOpenDialog_Start db 'OpenDialog_start',0 |
align 4 |
import_libkmenu: |
kmenu_init dd akmenu_init |
kmainmenu_draw dd akmainmenu_draw |