tinygl: add some double functions, add bcc32 example

libimg: small optimize

git-svn-id: svn://kolibrios.org@8408 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2020-12-14 16:48:32 +00:00
parent eac740c648
commit 9a54fc6aed
24 changed files with 1438 additions and 468 deletions

View File

@ -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

View File

@ -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;
};
}

View File

@ -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

View File

@ -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

View File

@ -10,12 +10,40 @@ glVertex4f: ;x, y, z, w
pop eax pop eax
ret 20 ;=sizeof(dd)*5 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 align 4
proc glVertex2f, x:dword, y:dword proc glVertex2f, x:dword, y:dword
stdcall glVertex4f,[x],[y],0.0,1.0 stdcall glVertex4f,[x],[y],0.0,1.0
ret ret
endp 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 align 4
proc glVertex2fv uses eax, v:dword proc glVertex2fv uses eax, v:dword
mov eax,[v] mov eax,[v]
@ -23,12 +51,40 @@ proc glVertex2fv uses eax, v:dword
ret ret
endp 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 align 4
proc glVertex3f, x:dword, y:dword, z:dword proc glVertex3f, x:dword, y:dword, z:dword
stdcall glVertex4f,[x],[y],[z],1.0 stdcall glVertex4f,[x],[y],[z],1.0
ret ret
endp 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 align 4
proc glVertex3fv uses eax, v:dword proc glVertex3fv uses eax, v:dword
mov eax,[v] mov eax,[v]
@ -36,6 +92,21 @@ proc glVertex3fv uses eax, v:dword
ret ret
endp 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 align 4
proc glVertex4fv uses eax, v:dword proc glVertex4fv uses eax, v:dword
mov eax,[v] mov eax,[v]
@ -43,6 +114,22 @@ proc glVertex4fv uses eax, v:dword
ret ret
endp 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 ; glNormal
align 4 align 4

View File

@ -6,7 +6,7 @@ use32
include '../../../../../proc32.inc' include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac' include '../../../../../load_lib.mac'
include '../../../../../dll.inc' include '../../../../../dll.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
include 'fps.inc' include 'fps.inc'
@ -18,8 +18,7 @@ macro matr_cell c_funct,c_param,funct,param, dia
dia dword[esp-4*(c_param*(c_funct-funct)+(1+c_param-param))] dia dword[esp-4*(c_param*(c_funct-funct)+(1+c_param-param))]
} }
;Так как некоторые извращенческие функции OpenGL воспринимают только параметры ;Макрос для параметров типа double (8 байт)
;типа double (8 байт) то придется пихать их в стек макросом glpush
macro glpush GLDoubleVar { macro glpush GLDoubleVar {
push dword[GLDoubleVar+4] push dword[GLDoubleVar+4]
push dword[GLDoubleVar] push dword[GLDoubleVar]
@ -27,8 +26,7 @@ macro glpush GLDoubleVar {
align 4 align 4
start: start:
load_library name_tgl, cur_dir_path, library_path, system_path, \ load_library name_tgl, library_path, system_path, import_tinygl
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
cmp eax,SF_TERMINATE_PROCESS cmp eax,SF_TERMINATE_PROCESS
jz button.exit jz button.exit
@ -903,7 +901,7 @@ endp
;-------------------------------------------------- ;--------------------------------------------------
align 4 align 4
import_lib_tinygl: import_tinygl:
macro E_LIB n macro E_LIB n
{ {
@ -920,11 +918,6 @@ include '../export.inc'
;-------------------------------------------------- ;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 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 align 16
@ -932,10 +925,8 @@ i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28 ;sizeof.TinyGLContext = 28
procinfo process_information procinfo process_information
cur_dir_path rb 4096
library_path rb 4096
rb 4096 rb 4096
stacktop: stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem: mem:

View File

@ -6,7 +6,7 @@ use32
include '../../../../../proc32.inc' include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac' include '../../../../../load_lib.mac'
include '../../../../../dll.inc' include '../../../../../dll.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
@ -14,8 +14,7 @@ include '../opengl_const.inc'
align 4 align 4
start: start:
load_library name_tgl, cur_dir_path, library_path, system_path, \ load_library name_tgl, library_path, system_path, import_lib_tinygl
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
cmp eax,SF_TERMINATE_PROCESS cmp eax,SF_TERMINATE_PROCESS
jz button.exit jz button.exit
@ -154,21 +153,14 @@ include '../export.inc'
;-------------------------------------------------- ;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 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 align 16
i_end: i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext ctx1 rb 28 ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28 ;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 1024 rb 1024
stacktop: stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem: mem:

View File

@ -6,7 +6,7 @@ use32
include '../../../../../proc32.inc' include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac' include '../../../../../load_lib.mac'
include '../../../../../dll.inc' include '../../../../../dll.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
@ -14,8 +14,7 @@ include '../opengl_const.inc'
align 4 align 4
start: start:
load_library name_tgl, cur_dir_path, library_path, system_path, \ load_library name_tgl, library_path, system_path, import_lib_tinygl
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
cmp eax,SF_TERMINATE_PROCESS cmp eax,SF_TERMINATE_PROCESS
jz button.exit jz button.exit
@ -154,21 +153,14 @@ include '../export.inc'
;-------------------------------------------------- ;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 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 align 16
i_end: i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext ctx1 rb 28 ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28 ;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 1024 rb 1024
stacktop: stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem: mem:

View File

@ -6,7 +6,7 @@ use32
include '../../../../../proc32.inc' include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac' include '../../../../../load_lib.mac'
include '../../../../../dll.inc' include '../../../../../dll.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
@ -14,8 +14,7 @@ include '../opengl_const.inc'
align 4 align 4
start: start:
load_library name_tgl, cur_dir_path, library_path, system_path, \ load_library name_tgl, library_path, system_path, import_lib_tinygl
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
cmp eax,SF_TERMINATE_PROCESS cmp eax,SF_TERMINATE_PROCESS
jz button.exit jz button.exit
@ -163,21 +162,14 @@ include '../export.inc'
;-------------------------------------------------- ;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 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 align 16
i_end: i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext ctx1 rb 28 ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28 ;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 1024 rb 1024
stacktop: stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem: mem:

View File

@ -6,7 +6,7 @@ use32
include '../../../../../proc32.inc' include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac' include '../../../../../load_lib.mac'
include '../../../../../dll.inc' include '../../../../../dll.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
@ -14,8 +14,7 @@ include '../opengl_const.inc'
align 4 align 4
start: start:
load_library name_tgl, cur_dir_path, library_path, system_path, \ load_library name_tgl, library_path, system_path, import_lib_tinygl
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
cmp eax,SF_TERMINATE_PROCESS cmp eax,SF_TERMINATE_PROCESS
jz button.exit jz button.exit
@ -155,21 +154,14 @@ include '../export.inc'
;-------------------------------------------------- ;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 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 align 16
i_end: i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext ctx1 rb 28 ;TinyGLContext or KOSGLContext
;sizeof.TinyGLContext = 28 ;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 1024 rb 1024
stacktop: stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem: mem:

View File

@ -1,28 +1,24 @@
use32 use32
org 0x0 org 0
db 'MENUET01' db 'MENUET01'
dd 0x1 dd 1,start,i_end,mem,stacktop,0,cur_dir_path
dd start
dd i_end
dd mem,stacktop
dd 0,cur_dir_path
include '../../../../../../programs/proc32.inc' include '../../../../../proc32.inc'
include '../../../../../../programs/macros.inc' include '../../../../../macros.inc'
include '../../../../../../programs/develop/libraries/box_lib/load_lib.mac' include '../../../../../KOSfuncs.inc'
include '../../../../../../programs/dll.inc' include '../../../../../load_lib.mac'
include '../../../../../dll.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
@use_library @use_library
align 4 align 4
start: start:
load_library name_tgl, cur_dir_path, library_path, system_path, \ load_library name_tgl, library_path, system_path, import_tinygl
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
cmp eax,-1 cmp eax,-1
jz button.exit jz button.exit
mcall 40,0x27 mcall SF_SET_EVENTS_MASK,0x27
stdcall [kosglMakeCurrent], 10,10,400,350,ctx1 stdcall [kosglMakeCurrent], 10,10,400,350,ctx1
stdcall [glEnable], GL_DEPTH_TEST stdcall [glEnable], GL_DEPTH_TEST
@ -37,7 +33,7 @@ red_win:
align 4 align 4
still: still:
mcall 10 mcall SF_WAIT_EVENT
cmp al,1 cmp al,1
jz red_win jz red_win
cmp al,2 cmp al,2
@ -49,19 +45,18 @@ still:
align 4 align 4
draw_window: draw_window:
pushad pushad
mcall 12,1 mcall SF_REDRAW,SSF_BEGIN_DRAW
mov edx,0x33ffffff ;0x73ffffff mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption
mcall 0,(50 shl 16)+430,(30 shl 16)+400,,,caption call [kosglSwapBuffers]
stdcall [kosglSwapBuffers]
mcall 12,2 mcall SF_REDRAW,SSF_END_DRAW
popad popad
ret ret
align 4 align 4
key: key:
mcall 2 mcall SF_GET_KEY
cmp ah,27 ;Esc cmp ah,27 ;Esc
je button.exit je button.exit
@ -72,7 +67,7 @@ key:
fadd dword[delt_sc] fadd dword[delt_sc]
fstp dword[scale] fstp dword[scale]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,45 ;- cmp ah,45 ;-
jne @f jne @f
@ -80,7 +75,7 @@ key:
fsub dword[delt_sc] fsub dword[delt_sc]
fstp dword[scale] fstp dword[scale]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,178 ;Up cmp ah,178 ;Up
jne @f jne @f
@ -88,7 +83,7 @@ key:
fadd dword[delt_size] fadd dword[delt_size]
fstp dword[angle_y] fstp dword[angle_y]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,177 ;Down cmp ah,177 ;Down
jne @f jne @f
@ -96,7 +91,7 @@ key:
fsub dword[delt_size] fsub dword[delt_size]
fstp dword[angle_y] fstp dword[angle_y]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,176 ;Left cmp ah,176 ;Left
jne @f jne @f
@ -104,7 +99,7 @@ key:
fadd dword[delt_size] fadd dword[delt_size]
fstp dword[angle_z] fstp dword[angle_z]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,179 ;Right cmp ah,179 ;Right
jne @f jne @f
@ -112,30 +107,27 @@ key:
fsub dword[delt_size] fsub dword[delt_size]
fstp dword[angle_z] fstp dword[angle_z]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
jmp still jmp still
align 4 align 4
button: button:
mcall 17 mcall SF_GET_BUTTON
cmp ah,1 cmp ah,1
jne still jne still
.exit: .exit:
mcall -1 mcall SF_TERMINATE_PROCESS
align 4 align 4
caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 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 align 4
draw_3d: draw_3d:
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
stdcall [glPushMatrix] call [glPushMatrix]
;масштаб и повороты ;масштаб и повороты
stdcall [glTranslatef], 0.0,0.0,0.5 stdcall [glTranslatef], 0.0,0.0,0.5
@ -152,7 +144,7 @@ stdcall [glPushMatrix]
stdcall [glDisableClientState], GL_COLOR_ARRAY ;отключаем режим рисования цветов stdcall [glDisableClientState], GL_COLOR_ARRAY ;отключаем режим рисования цветов
stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин
stdcall [glPopMatrix] call [glPopMatrix]
ret ret
align 4 align 4
@ -168,7 +160,7 @@ Colors dd 0.0, 0.5, 1.0, 1.0, 0.0, 0.5, 1.0, 1.0, 1.0, 0.5, 1.0, 0.0 ;4 цвет
;-------------------------------------------------- ;--------------------------------------------------
align 4 align 4
import_lib_tinygl: import_tinygl:
macro E_LIB n macro E_LIB n
{ {
@ -185,17 +177,13 @@ include '../export.inc'
;-------------------------------------------------- ;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 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: i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 4096 rb 4096
stacktop: stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem: mem:

View File

@ -1,12 +1,12 @@
use32 use32
org 0x0 org 0
db 'MENUET01' db 'MENUET01'
dd 1,start,i_end,mem,stacktop,0,cur_dir_path dd 1,start,i_end,mem,stacktop,0,cur_dir_path
include '../../../../../proc32.inc' include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac' include '../../../../../load_lib.mac'
include '../../../../../dll.inc' include '../../../../../dll.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
@ -14,8 +14,7 @@ include '../opengl_const.inc'
align 4 align 4
start: start:
load_library name_tgl, cur_dir_path, library_path, system_path, \ load_library name_tgl, library_path, system_path, import_tinygl
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
cmp eax,SF_TERMINATE_PROCESS cmp eax,SF_TERMINATE_PROCESS
jz button.exit jz button.exit
@ -62,9 +61,8 @@ draw_window:
pushad pushad
mcall SF_REDRAW,SSF_BEGIN_DRAW mcall SF_REDRAW,SSF_BEGIN_DRAW
mov edx,0x33ffffff mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption
mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,,,caption call [kosglSwapBuffers]
stdcall [kosglSwapBuffers]
mcall SF_REDRAW,SSF_END_DRAW mcall SF_REDRAW,SSF_END_DRAW
popad popad
@ -83,7 +81,7 @@ key:
fadd dword[delt_sc] fadd dword[delt_sc]
fstp dword[scale] fstp dword[scale]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,45 ;- cmp ah,45 ;-
jne @f jne @f
@ -91,7 +89,7 @@ key:
fsub dword[delt_sc] fsub dword[delt_sc]
fstp dword[scale] fstp dword[scale]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,178 ;Up cmp ah,178 ;Up
jne @f jne @f
@ -99,7 +97,7 @@ key:
fadd dword[delt_size] fadd dword[delt_size]
fstp dword[angle_y] fstp dword[angle_y]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,177 ;Down cmp ah,177 ;Down
jne @f jne @f
@ -107,7 +105,7 @@ key:
fsub dword[delt_size] fsub dword[delt_size]
fstp dword[angle_y] fstp dword[angle_y]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,176 ;Left cmp ah,176 ;Left
jne @f jne @f
@ -115,7 +113,7 @@ key:
fadd dword[delt_size] fadd dword[delt_size]
fstp dword[angle_x] fstp dword[angle_x]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
cmp ah,179 ;Right cmp ah,179 ;Right
jne @f jne @f
@ -123,7 +121,7 @@ key:
fsub dword[delt_size] fsub dword[delt_size]
fstp dword[angle_x] fstp dword[angle_x]
call draw_3d call draw_3d
stdcall [kosglSwapBuffers] call [kosglSwapBuffers]
@@: @@:
jmp still jmp still
@ -139,14 +137,11 @@ button:
align 4 align 4
caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 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 align 4
draw_3d: draw_3d:
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
stdcall [glPushMatrix] call [glPushMatrix]
;масштаб и повороты ;масштаб и повороты
stdcall [glTranslatef], 0.0,0.0,0.5 stdcall [glTranslatef], 0.0,0.0,0.5
@ -155,7 +150,7 @@ stdcall [glPushMatrix]
stdcall [glRotatef], [angle_y],0.0,1.0,0.0 stdcall [glRotatef], [angle_y],0.0,1.0,0.0
stdcall [glRotatef], [angle_x],1.0,0.0,0.0 stdcall [glRotatef], [angle_x],1.0,0.0,0.0
;рисование через тндексный массив ;рисование через индексный массив
mov eax,house_3ds ;начало внедренного файла 3ds mov eax,house_3ds ;начало внедренного файла 3ds
add eax,0xeb ;смещение по которому идут координаты вершин (получено с использованием программы info_3ds) add eax,0xeb ;смещение по которому идут координаты вершин (получено с использованием программы info_3ds)
stdcall [glVertexPointer], 3, GL_FLOAT, 0, eax ;задаем массив для вершин, 3 - число координат для одной вершины stdcall [glVertexPointer], 3, GL_FLOAT, 0, eax ;задаем массив для вершин, 3 - число координат для одной вершины
@ -163,7 +158,7 @@ stdcall [glPushMatrix]
stdcall [glDrawElements], GL_TRIANGLES, 0x1a6*3, GL_UNSIGNED_SHORT, Indices ;mode, count, type, *indices stdcall [glDrawElements], GL_TRIANGLES, 0x1a6*3, GL_UNSIGNED_SHORT, Indices ;mode, count, type, *indices
stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин
stdcall [glPopMatrix] call [glPopMatrix]
ret ret
align 4 align 4
@ -199,17 +194,13 @@ include '../export.inc'
;-------------------------------------------------- ;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 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: i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28
cur_dir_path rb 4096
library_path rb 4096
rb 4096 rb 4096
stacktop: stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem: mem:

View File

@ -6,7 +6,7 @@ use32
include '../../../../../proc32.inc' include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../develop/libraries/box_lib/load_lib.mac' include '../../../../../load_lib.mac'
include '../../../../../dll.inc' include '../../../../../dll.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
@ -14,8 +14,7 @@ include '../opengl_const.inc'
align 4 align 4
start: start:
load_library name_tgl, cur_dir_path, library_path, system_path, \ load_library name_tgl, library_path, system_path, import_tinygl
err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
cmp eax,SF_TERMINATE_PROCESS cmp eax,SF_TERMINATE_PROCESS
jz button.exit jz button.exit
@ -23,7 +22,7 @@ start:
stdcall [kosglMakeCurrent], 10,10,300,225,ctx1 stdcall [kosglMakeCurrent], 10,10,300,225,ctx1
stdcall [glEnable], GL_DEPTH_TEST stdcall [glEnable], GL_DEPTH_TEST
stdcall [gluNewQuadric] call [gluNewQuadric]
mov [qObj],eax mov [qObj],eax
stdcall [glClearColor], 0.5,0.5,0.5,0.0 stdcall [glClearColor], 0.5,0.5,0.5,0.0
@ -170,7 +169,7 @@ delt_size dd 3.0
;-------------------------------------------------- ;--------------------------------------------------
align 4 align 4
import_lib_tinygl: import_tinygl:
macro E_LIB n macro E_LIB n
{ {
@ -187,21 +186,13 @@ include '../export.inc'
;-------------------------------------------------- ;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 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 align 16
i_end: i_end:
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext ctx1 rb 28 ;sizeof.TinyGLContext = 28
;sizeof.TinyGLContext = 28 cur_dir_path rb 4096
library_path rb 4096
rb 2048 rb 2048
stacktop: stacktop:
cur_dir_path:
rb 4096
library_path:
rb 4096
mem: mem:

View File

@ -7,14 +7,13 @@ include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc' include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc' include '../opengl_const.inc'
include '../zbuffer.inc' include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.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 IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
;Макрос для параметров типа double (8 байт) ;Макрос для параметров типа double (8 байт)
@ -366,7 +365,7 @@ lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового ос
;-------------------------------------------------- ;--------------------------------------------------
align 4 align 4
import_lib_tinygl: import_tinygl:
macro E_LIB n macro E_LIB n
{ {
@ -490,14 +489,6 @@ system_dir_1 db '/sys/lib/'
lib_name_1 db 'buf2d.obj',0 lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/' system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0 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: txt_scale:
@ -535,23 +526,21 @@ buf_1:
align 4 align 4
l_libs_start: l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
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, file_name, system_dir_1, import_buf2d
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
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
l_libs_end: l_libs_end:
align 4 align 4
i_end: i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28 ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
qObj dd 0 qObj dd 0
run_file_70 FileInfoBlock run_file_70 FileInfoBlock
sc system_colors sc system_colors
align 16 align 16
rb 4096
stacktop:
cur_dir_path rb 4096 cur_dir_path rb 4096
file_name rb 4096 file_name rb 4096
rb 4096
stacktop:
mem: mem:

View File

@ -7,14 +7,13 @@ include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc' include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc' include '../opengl_const.inc'
include '../zbuffer.inc' include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.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 IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
;Макрос для параметров типа double (8 байт) ;Макрос для параметров типа double (8 байт)
@ -357,7 +356,7 @@ lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового ос
;-------------------------------------------------- ;--------------------------------------------------
align 4 align 4
import_lib_tinygl: import_tinygl:
macro E_LIB n macro E_LIB n
{ {
@ -481,14 +480,6 @@ system_dir_1 db '/sys/lib/'
lib_name_1 db 'buf2d.obj',0 lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/' system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0 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: txt_scale:
@ -526,23 +517,21 @@ buf_1:
align 4 align 4
l_libs_start: l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
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, file_name, system_dir_1, import_buf2d
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
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
l_libs_end: l_libs_end:
align 4 align 4
i_end: i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28 ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
qObj dd 0 qObj dd 0
run_file_70 FileInfoBlock run_file_70 FileInfoBlock
sc system_colors sc system_colors
align 16 align 16
rb 4096
stacktop:
cur_dir_path rb 4096 cur_dir_path rb 4096
file_name rb 4096 file_name rb 4096
rb 4096
stacktop:
mem: mem:

View File

@ -7,11 +7,12 @@ include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc' include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc' include '../opengl_const.inc'
include '../zbuffer.inc' include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.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 байт) ;Макрос для параметров типа double (8 байт)
macro glpush GLDoubleVar { macro glpush GLDoubleVar {
@ -19,8 +20,6 @@ macro glpush GLDoubleVar {
push dword[GLDoubleVar] push dword[GLDoubleVar]
} }
align 4
image_data_toolbar dd 0
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
align 4 align 4
@ -407,7 +406,7 @@ lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового ос
;-------------------------------------------------- ;--------------------------------------------------
align 4 align 4
import_lib_tinygl: import_tinygl:
macro E_LIB n macro E_LIB n
{ {
@ -531,14 +530,6 @@ system_dir_1 db '/sys/lib/'
lib_name_1 db 'buf2d.obj',0 lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/' system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0 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: txt_scale:
@ -576,17 +567,15 @@ buf_1:
align 4 align 4
l_libs_start: l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
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, file_name, system_dir_1, import_buf2d
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
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
l_libs_end: l_libs_end:
align 4 align 4
i_end: i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28 ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
dr_figure dd 0 dr_figure dd 0
qObj dd 0 qObj dd 0
TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.)
@ -596,8 +585,8 @@ i_end:
run_file_70 FileInfoBlock run_file_70 FileInfoBlock
sc system_colors sc system_colors
align 16 align 16
rb 4096
stacktop:
cur_dir_path rb 4096 cur_dir_path rb 4096
file_name rb 4096 file_name rb 4096
rb 4096
stacktop:
mem: mem:

View File

@ -7,11 +7,12 @@ include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc' include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc' include '../opengl_const.inc'
include '../zbuffer.inc' include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.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 байт) ;Макрос для параметров типа double (8 байт)
macro glpush GLDoubleVar { macro glpush GLDoubleVar {
@ -19,8 +20,6 @@ macro glpush GLDoubleVar {
push dword[GLDoubleVar] push dword[GLDoubleVar]
} }
align 4
image_data_toolbar dd 0
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
align 4 align 4
@ -337,7 +336,7 @@ delt_size dd 3.0
;-------------------------------------------------- ;--------------------------------------------------
align 4 align 4
import_lib_tinygl: import_tinygl:
macro E_LIB n macro E_LIB n
{ {
@ -461,14 +460,6 @@ system_dir_1 db '/sys/lib/'
lib_name_1 db 'buf2d.obj',0 lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/' system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0 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: txt_scale:
@ -512,17 +503,15 @@ buf_1:
align 4 align 4
l_libs_start: l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
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, file_name, system_dir_1, import_buf2d
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
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
l_libs_end: l_libs_end:
align 4 align 4
i_end: i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28 ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
dr_figure dd 0 dr_figure dd 0
qObj dd 0 qObj dd 0
TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.)
@ -532,8 +521,8 @@ i_end:
run_file_70 FileInfoBlock run_file_70 FileInfoBlock
sc system_colors sc system_colors
align 16 align 16
rb 4096
stacktop:
cur_dir_path rb 4096 cur_dir_path rb 4096
file_name rb 4096 file_name rb 4096
rb 4096
stacktop:
mem: mem:

View File

@ -7,11 +7,12 @@ include '../../../../../proc32.inc'
include '../../../../../macros.inc' include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../load_img.inc' include '../../../../../load_img.inc'
include '../../../../../load_lib.mac'
include '../opengl_const.inc' include '../opengl_const.inc'
include '../zbuffer.inc' include '../zbuffer.inc'
include '../../../../../develop/info3ds/info_fun_float.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 байт) ;Макрос для параметров типа double (8 байт)
macro glpush GLDoubleVar { macro glpush GLDoubleVar {
@ -19,8 +20,6 @@ macro glpush GLDoubleVar {
push dword[GLDoubleVar] push dword[GLDoubleVar]
} }
align 4
image_data_toolbar dd 0
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
align 4 align 4
@ -294,7 +293,7 @@ delt_size dd 3.0
;-------------------------------------------------- ;--------------------------------------------------
align 4 align 4
import_lib_tinygl: import_tinygl:
macro E_LIB n macro E_LIB n
{ {
@ -418,14 +417,6 @@ system_dir_1 db '/sys/lib/'
lib_name_1 db 'buf2d.obj',0 lib_name_1 db 'buf2d.obj',0
system_dir_2 db '/sys/lib/' system_dir_2 db '/sys/lib/'
lib_name_2 db 'libimg.obj',0 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: txt_scale:
@ -469,17 +460,15 @@ buf_1:
align 4 align 4
l_libs_start: l_libs_start:
lib_0 l_libs lib_name_0, cur_dir_path, file_name, system_dir_0,\ lib_0 l_libs lib_name_0, file_name, system_dir_0, import_tinygl
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, file_name, system_dir_1, import_buf2d
lib_1 l_libs lib_name_1, cur_dir_path, file_name, system_dir_1,\ lib_2 l_libs lib_name_2, file_name, system_dir_2, import_libimg
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
l_libs_end: l_libs_end:
align 4 align 4
i_end: i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28 ctx1 rb 28 ;sizeof.TinyGLContext = 28
image_data_toolbar dd 0
qObj dd 0 qObj dd 0
TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.)
texture dd 0 ;указатель на память с текстурой texture dd 0 ;указатель на память с текстурой
@ -488,8 +477,8 @@ i_end:
run_file_70 FileInfoBlock run_file_70 FileInfoBlock
sc system_colors sc system_colors
align 16 align 16
rb 4096
stacktop:
cur_dir_path rb 4096 cur_dir_path rb 4096
file_name rb 4096 file_name rb 4096
rb 4096
stacktop:
mem: mem:

View File

@ -5,7 +5,7 @@
; Š®«¨ç¥á⢮ §­ ª®¢ ç¨á«  ¯®á«¥ § ¯ï⮩ (1-17) ; Š®«¨ç¥á⢮ §­ ª®¢ ç¨á«  ¯®á«¥ § ¯ï⮩ (1-17)
NumberSymbolsAD DW 5 NumberSymbolsAD DW 5
; Š®­áâ ­âë (10 ¢ á⥯¥­¨ N) ; Š®­áâ ­âë (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.0E6,1.0E7,1.0E8,1.0E9,1.0E10
DQ 1.0E11,1.0E12,1.0E13,1.0E14,1.0E15 DQ 1.0E11,1.0E12,1.0E13,1.0E14,1.0E15
DQ 1.0E16,1.0E17,1.0E18,1.0E19,1.0E20 DQ 1.0E16,1.0E17,1.0E18,1.0E19,1.0E20
@ -31,6 +31,7 @@ MConst DQ 1.0E1,1.0E2,1.0E3,1.0E4,1.0E5
DQ 1.0E116,1.0E117,1.0E118,1.0E119,1.0E120 DQ 1.0E116,1.0E117,1.0E118,1.0E119,1.0E120
DQ 1.0E121,1.0E122,1.0E123,1.0E124,1.0E125 DQ 1.0E121,1.0E122,1.0E123,1.0E124,1.0E125
DQ 1.0E126,1.0E127,1.0E128 DQ 1.0E126,1.0E127,1.0E128
.end:
; —¨á«® á ¯« ¢ î饩 § ¯ï⮩ ¤¢®©­®© â®ç­®á⨠; —¨á«® á ¯« ¢ î饩 § ¯ï⮩ ¤¢®©­®© â®ç­®áâ¨
Data_Double DQ ? Data_Double DQ ?
; —¨á«® ¢ BCD-ä®à¬ â¥ ; —¨á«® ¢ BCD-ä®à¬ â¥
@ -39,9 +40,10 @@ Data_BCD DT ?
Data_Flag DB ? Data_Flag DB ?
; ‡­ ª १ã«ìâ â  (¥á«¨ ­¥ 0 - ®âà¨æ â¥«ì­®¥ ç¨á«®) ; ‡­ ª १ã«ìâ â  (¥á«¨ ­¥ 0 - ®âà¨æ â¥«ì­®¥ ç¨á«®)
Data_Sign DB ? Data_Sign DB ?
; ‡­ ª १ã«ìâ â  - 0 ¤«ï ..e+.. ¨ 1 ¤«ï ..e-..
Data_Sign_Exp DB ?
align 4
db 0 ;㪠§ â¥«ì ­  ᤢ¨£ ¢ ¯ ¬ïâ¨
; ‘âப  ¤«ï åà ­¥­¨ï ç¨á«  ¢ ª®¤¥ ASCII ; ‘âப  ¤«ï åà ­¥­¨ï ç¨á«  ¢ ª®¤¥ ASCII
Data_String DB 32 DUP (?) Data_String DB 32 DUP (?)
@ -59,10 +61,11 @@ Data_String DB 32 DUP (?)
;* ‚ë室­ë¥ ¯ à ¬¥âàë: * ;* ‚ë室­ë¥ ¯ à ¬¥âàë: *
;* Data_String - áâப -१ã«ìâ â. * ;* Data_String - áâப -१ã«ìâ â. *
;******************************************************* ;*******************************************************
align 4
DoubleFloat_to_String: DoubleFloat_to_String:
pushad pushad
; <EFBFBD>¥§ã«ìâ â § ¯¨á뢠âì ¢ áâபã Data_String ; <EFBFBD>¥§ã«ìâ â § ¯¨á뢠âì ¢ áâபã Data_String
lea EDI, [Data_String] mov EDI, Data_String
; ‘¤¢¨£ ¥¬ ç¨á«® ¢«¥¢® ­  NumberSymbolsAD ; ‘¤¢¨£ ¥¬ ç¨á«® ¢«¥¢® ­  NumberSymbolsAD
; ¤¥áïâ¨ç­ëå à §à冷¢ ; ¤¥áïâ¨ç­ëå à §à冷¢
@ -74,9 +77,7 @@ DoubleFloat_to_String:
je .NoShifts ;­¥â æ¨äà ¯®á«¥ § ¯ï⮩ je .NoShifts ;­¥â æ¨äà ¯®á«¥ § ¯ï⮩
jl .Error ;®è¨¡ª  jl .Error ;®è¨¡ª 
dec BX dec BX
shl BX, 3 ;㬭®¦ ¥¬ ­  8 lea ebx,[MConst+8*ebx]
lea eax,[MConst]
add EBX, eax
fmul qword [EBX] ;㬭®¦¨âì ­  ª®­áâ ­âã fmul qword [EBX] ;㬭®¦¨âì ­  ª®­áâ ­âã
.NoShifts: .NoShifts:
; ˆ§¢«¥çì ç¨á«® ¢ ª®¤¥ BCD ; ˆ§¢«¥çì ç¨á«® ¢ ª®¤¥ BCD
@ -130,8 +131,8 @@ DoubleFloat_to_String:
stosb stosb
; “¡à âì ­¥§­ ç é¨¥ ­ã«¨ á«¥¢  ; “¡à âì ­¥§­ ç é¨¥ ­ã«¨ á«¥¢ 
lea EDI, [Data_String] mov EDI, Data_String
lea ESI, [Data_String] mov ESI, Data_String
; <EFBFBD>யãáâ¨âì §­ ª ç¨á« , ¥á«¨ ®­ ¥áâì ; <EFBFBD>யãáâ¨âì §­ ª ç¨á« , ¥á«¨ ®­ ¥áâì
cmp byte [ESI],'-' cmp byte [ESI],'-'
jne .N2 jne .N2
@ -151,10 +152,11 @@ DoubleFloat_to_String:
; Žè¨¡ª  - ­¥â §­ ç é¨å æ¨äà ; Žè¨¡ª  - ­¥â §­ ç é¨å æ¨äà
jmp .Error jmp .Error
; ‘ª®¯¨à®¢ âì §­ ç éãî ç áâì ç¨á«  ¢ ­ ç «® áâப¨ ; ‘ª®¯¨à®¢ âì §­ ç éãî ç áâì ç¨á«  ¢ ­ ç «® áâப¨
align 4
.N4: rep movsb .N4: rep movsb
jmp .End jmp .End
; Žè¨¡ª  ; Žè¨¡ª 
align 4
.Error: .Error:
mov AL,'E' mov AL,'E'
stosb stosb
@ -166,12 +168,14 @@ DoubleFloat_to_String:
stosb stosb
jmp .End jmp .End
; <EFBFBD>¥à¥¯®«­¥­¨¥ à §à來®© á¥âª¨ ; <EFBFBD>¥à¥¯®«­¥­¨¥ à §à來®© á¥âª¨
align 4
.Overflow: .Overflow:
mov AL,'#' mov AL,'#'
stosb stosb
xor AL,AL xor AL,AL
stosb stosb
; Š®­¥æ ¯à®æ¥¤ãàë ; Š®­¥æ ¯à®æ¥¤ãàë
align 4
.End: .End:
popad popad
ret ret
@ -184,6 +188,7 @@ DoubleFloat_to_String:
;* ‚ë室­ë¥ ¯ à ¬¥âàë: * ;* ‚ë室­ë¥ ¯ à ¬¥âàë: *
;* Data_Double - ç¨á«® ¢ ¤¢®¨ç­®¬ ª®¤¥. * ;* Data_Double - ç¨á«® ¢ ¤¢®¨ç­®¬ ª®¤¥. *
;**************************************************** ;****************************************************
align 4
String_to_DoubleFloat: String_to_DoubleFloat:
pushad pushad
cld cld
@ -193,110 +198,200 @@ String_to_DoubleFloat:
mov word [Data_BCD+8],0 mov word [Data_BCD+8],0
; Žç¨é ¥¬ ¡ ©â §­ ª  ; Žç¨é ¥¬ ¡ ©â §­ ª 
mov [Data_Sign],0 mov [Data_Sign],0
; ‡ ­®á¨¬ ¢ SI 㪠§ â¥«ì ­  áâபã ; ‡ ­®á¨¬ ¢ esi 㪠§ â¥«ì ­  áâபã
lea ESI, [Data_String] mov esi, Data_String
; <EFBFBD>யã᪠¥¬ ¯à®¡¥«ë ¯¥à¥¤ ç¨á«®¬ ; <EFBFBD>யã᪠¥¬ ¯à®¡¥«ë ¯¥à¥¤ ç¨á«®¬
mov ecx,64 ;§ é¨â  ®â § æ¨ª«¨¢ ­¨ï mov ecx,64 ;§ é¨â  ®â § æ¨ª«¨¢ ­¨ï
.ShiftIgnore: .ShiftIgnore:
lodsb lodsb
cmp AL,' ' cmp al,' '
jne .ShiftIgnoreEnd jne .ShiftIgnoreEnd
loop .ShiftIgnore loop .ShiftIgnore
jmp .Error jmp .Error
align 4
.ShiftIgnoreEnd: .ShiftIgnoreEnd:
; <EFBFBD>஢¥à塞 §­ ª ç¨á«  ; <EFBFBD>஢¥à塞 §­ ª ç¨á« 
cmp AL,'-' cmp al,'-'
jne .Positive jne .Positive
mov [Data_Sign],80h mov [Data_Sign],80h
lodsb lodsb
.Positive: .Positive:
mov [Data_Flag],0 ;¯à¨§­ ª ­ «¨ç¨ï â®çª¨ mov [Data_Flag],0 ;¯à¨§­ ª ­ «¨ç¨ï â®çª¨
mov DX,0 ;¯®§¨æ¨ï â®çª¨ xor edx,edx ;¯®§¨æ¨ï â®çª¨
mov ecx,18 ;¬ ªá. ç¨á«® à §à冷¢ mov ecx,18 ;¬ ªá. ç¨á«® à §à冷¢
align 4
.ASCIItoBCDConversion: .ASCIItoBCDConversion:
cmp AL,'.' ;â®çª ? cmp al,'.' ;â®çª ?
jne .NotDot jne .NotDot
cmp [Data_Flag],0 ;â®çª  ­¥ ¢áâà¥ç « áì? cmp [Data_Flag],0 ;â®çª  ­¥ ¢áâà¥ç « áì?
jne .Error jne .Error ;¥á«¨ â®çª  㦥 ¡ë« 
mov [Data_Flag],1 mov [Data_Flag],1
lodsb lodsb
cmp AL,0 ;ª®­¥æ áâப¨? or al,al ;ª®­¥æ áâப¨?
jne .NotDot jnz .NotDot
jmp .ASCIItoBCDConversionEnd jmp .ASCIItoBCDConversionEnd
align 4
.NotDot: .NotDot:
; “¢¥«¨ç¨âì ­  1 §­ ç¥­¨¥ ¯®§¨æ¨¨ â®çª¨, ; “¢¥«¨ç¨âì ­  1 §­ ç¥­¨¥ ¯®§¨æ¨¨ â®çª¨,
; ¥á«¨ ®­  ¥é¥ ­¥ ¢áâà¥ç « áì ; ¥á«¨ ®­  ¥é¥ ­¥ ¢áâà¥ç « áì
cmp [Data_Flag],0 cmp [Data_Flag],0
jnz .Figures jnz .Figures
inc DX inc edx
.Figures: .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 jb .Error
cmp AL,'9' cmp al,'9'
ja .Error ja .Error
; <EFBFBD>¨è¥¬ ®ç¥à¥¤­ãî æ¨äàã ¢ ¬« ¤èãî â¥âà ¤ã BCD ; <EFBFBD>¨è¥¬ ®ç¥à¥¤­ãî æ¨äàã ¢ ¬« ¤èãî â¥âà ¤ã BCD
and AL,0Fh and al,15 ;ᨬ¢®«ë 0-9 ¯¥à¥¢®¤¨¬ ¢ ç¨á«®
or byte [Data_BCD],AL or byte [Data_BCD],al
; <EFBFBD>஢¥àª  ­  ª®­¥æ áâப¨ ; <EFBFBD>஢¥àª  ­  ª®­¥æ áâப¨
cmp byte [ESI],0 cmp byte [esi],0
je .ASCIItoBCDConversionEnd je .ASCIItoBCDConversionEnd
; ‘¤¢¨£ ¥¬ BCD ­  4 à §à鸞 ¢«¥¢® ; ‘¤¢¨£ ¥¬ BCD ­  4 à §à鸞 ¢«¥¢®
; (ᤢ¨£ ¥¬ áâ à訥 2 ¡ ©â ) ; (ᤢ¨£ ¥¬ áâ à訥 2 ¡ ©â )
mov AX,word [Data_BCD+6] mov ax,word [Data_BCD+6]
shld word [Data_BCD+8],AX,4 shld word [Data_BCD+8],ax,4
; (ᤢ¨£ ¥¬ á।­¨¥ 4 ¡ ©â ) ; (ᤢ¨£ ¥¬ á।­¨¥ 4 ¡ ©â )
mov EAX, dword [Data_BCD] mov eax,dword [Data_BCD]
shld dword [Data_BCD+4],EAX,4 shld dword [Data_BCD+4],eax,4
; (ᤢ¨£ ¥¬ ¬« ¤è¨¥ 4 ¡ ©â ) ; (ᤢ¨£ ¥¬ ¬« ¤è¨¥ 4 ¡ ©â )
shl dword [Data_BCD],4 shl dword [Data_BCD],4
; ‡ £à㦠¥¬ á«¥¤ãî騩 ᨬ¢®« ¢ AL ; ‡ £à㦠¥¬ á«¥¤ãî騩 ᨬ¢®« ¢ AL
lodsb lodsb
loop .ASCIItoBCDConversion loop .ASCIItoBCDConversion ;¥á«¨ ­¥ ª®¬¯¨«. â® ¯®áâ ¢¨âì dec ecx, jnz ...
; …᫨ 19-© ᨬ¢®« ­¥ 0 ¨ ­¥ â®çª , ; …᫨ 19-© ᨬ¢®« ­¥ 0 ¨ ­¥ â®çª ,
; â® ®è¨¡ª  ¯¥à¥¯®«­¥­¨ï ; â® ®è¨¡ª  ¯¥à¥¯®«­¥­¨ï
cmp AL,'.' cmp al,'.'
jne .NotDot2 jne .NotDot2
inc ecx inc ecx ;¯à®¯ã᪠â®çª¨ ¢ ª®­æ¥ ®ç¥­ì ¡®«ì讣® ç¨á« 
lodsb lodsb
.NotDot2: .NotDot2:
cmp AL,0 or al,al ;¯¥à¥¯®«­¥­¨¥ à §à來®© á¥âª¨?
jne .Error ;¯¥à¥¯®«­¥­¨¥ à §à來®© á¥âª¨ jz .ASCIItoBCDConversionEnd
align 4
.Error: ; <EFBFBD>ਠ«î¡®© ®è¨¡ª¥ ®¡­ã«¨âì १ã«ìâ â
fldz ;§ ­¥á⨠­®«ì á á⥪ ᮯà®æ¥áá®à 
fstp [Data_Double]
jmp .End
; <EFBFBD><EFBFBD>…Ž<EFBFBD><EFBFBD>€‡Žœ —ˆ‘‹Ž ˆ‡ ŠŽ„€ BCD …™…<EFBFBD><EFBFBD>Ž… —ˆ‘‹Ž ; <EFBFBD><EFBFBD>…Ž<EFBFBD><EFBFBD>€‡Žœ —ˆ‘‹Ž ˆ‡ ŠŽ„€ BCD …™…<EFBFBD><EFBFBD>Ž… —ˆ‘‹Ž
.ASCIItoBCDConversionEnd: .ASCIItoBCDConversionEnd:
; ‚¯¨á âì §­ ª ¢ áâ à訩 ¡ ©â ; ‚¯¨á âì §­ ª ¢ áâ à訩 ¡ ©â
mov AL,[Data_Sign] mov al,[Data_Sign]
mov byte [Data_BCD+9],AL mov byte [Data_BCD+9],al
; ‘¡à®á¨âì ॣ¨áâàë ᮯà®æ¥áá®à  ; ‘¡à®á¨âì ॣ¨áâàë ᮯà®æ¥áá®à 
fninit fninit
; ‡ £à㧨âì ¢ ᮯà®æ¥áá®à ç¨á«® ¢ BCD-ä®à¬ â¥ ; ‡ £à㧨âì ¢ ᮯà®æ¥áá®à ç¨á«® ¢ BCD-ä®à¬ â¥
fbld [Data_BCD] fbld [Data_BCD]
; ‚ëç¨á«¨âì ­®¬¥à ¤¥«¨â¥«ï ; ‚ëç¨á«¨âì ­®¬¥à ¤¥«¨â¥«ï ¨«¨ ¬­®¦¨â¥«ï
mov EBX,18+1 lea ebx,[ecx+edx-18]
sub BX,CX cmp ebx,0
sub BX,DX jle .NoMul ;¥á«¨ ç¨á«® e-..
cmp EBX,0 dec ebx
je .NoDiv jz .NoDiv ;¥á«¨ ç¨á«® e+0
dec EBX dec ebx
shl EBX,3 ;㬭®¦ ¥¬ ­  8 lea ebx,[MConst+8*ebx]
lea eax,[MConst] cmp ebx,MConst.end
add EBX,eax jl @f
fdiv qword [EBX] ;à §¤¥«¨âì ­  ª®­áâ ­âã 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: ;‚ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç­®¬ ä®à¬ â¥ .NoDiv: ;‚ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç­®¬ ä®à¬ â¥
fstp [Data_Double] fstp [Data_Double]
jmp .End
.Error:; <EFBFBD>ਠ«î¡®© ®è¨¡ª¥ ®¡­ã«¨âì १ã«ìâ â
fldz ;§ ­¥á⨠­®«ì á á⥪ ᮯà®æ¥áá®à 
fstp [Data_Double]
.End: .End:
popad popad
ret ret
;output:
; eax - 1 if error
; edx += size
align 4 align 4
proc str_cat, str1:dword, str2:dword proc string_ExpForm uses ebx
push eax ecx edi esi 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] mov esi,dword[str2]
stdcall str_len,esi stdcall str_len,esi
mov ecx,eax mov ecx,eax
@ -306,7 +401,6 @@ proc str_cat, str1:dword, str2:dword
add edi,eax add edi,eax
cld cld
repne movsb repne movsb
pop esi edi ecx eax
ret ret
endp endp
@ -324,3 +418,33 @@ proc str_len, str1:dword
sub eax,[str1] sub eax,[str1]
ret ret
endp 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

View File

@ -105,12 +105,6 @@ align 4
end if end if
; *** ; ***
glVertex2d: ;(double ,double)
glVertex2dv: ;(double *)
glVertex3d: ;(double ,double ,double)
glVertex3dv: ;(double *)
glVertex4d: ;(double ,double ,double, double )
glVertex4dv: ;(double *)
glColor3d: ;(double ,double ,double) glColor3d: ;(double ,double ,double)
glColor3dv: ;(double *) glColor3dv: ;(double *)
glColor4d: ;(double ,double ,double, double ) glColor4d: ;(double ,double ,double, double )

View File

@ -48,8 +48,8 @@ proc png_set_sig_bytes uses eax edi, png_ptr:dword, num_bytes:dword
png_debug 1, 'in png_set_sig_bytes' png_debug 1, 'in png_set_sig_bytes'
mov edi,[png_ptr] mov edi,[png_ptr]
cmp edi,0 or edi,edi
je .end_f ;if (..==0) return jz .end_f ;if (..==0) return
mov eax,[num_bytes] mov eax,[num_bytes]
cmp eax,0 cmp eax,0
@ -101,13 +101,10 @@ endp
align 4 align 4
proc png_zalloc uses edx ecx, png_ptr:dword, items:dword, size:dword proc png_zalloc uses edx ecx, png_ptr:dword, items:dword, size:dword
cmp dword[png_ptr],0
jne @f
xor eax,eax 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 not eax
xor edx,edx xor edx,edx
mov ecx,[size] mov ecx,[size]
@ -161,8 +158,8 @@ locals
endl endl
mov edi,[png_ptr] mov edi,[png_ptr]
PNG_CHUNK_ANCILLARY [edi+png_struct.chunk_name] PNG_CHUNK_ANCILLARY [edi+png_struct.chunk_name]
cmp eax,0 ;if (..!=0) or eax,eax ;if (..!=0)
je @f jz @f
mov eax,[edi+png_struct.flags] mov eax,[edi+png_struct.flags]
and eax,PNG_FLAG_CRC_ANCILLARY_MASK and eax,PNG_FLAG_CRC_ANCILLARY_MASK
cmp eax,PNG_FLAG_CRC_ANCILLARY_USE or PNG_FLAG_CRC_ANCILLARY_NOWARN cmp eax,PNG_FLAG_CRC_ANCILLARY_USE or PNG_FLAG_CRC_ANCILLARY_NOWARN
@ -340,12 +337,12 @@ end if
; Call the general version checker (shared with read and write code): ; Call the general version checker (shared with read and write code):
stdcall png_user_version_check, ebx, [user_png_ver] stdcall png_user_version_check, ebx, [user_png_ver]
cmp eax,0 or eax,eax
je .end0 ;if (..!=0) jz .end0 ;if (..!=0)
stdcall png_malloc_warn, ebx, sizeof.png_struct stdcall png_malloc_warn, ebx, sizeof.png_struct
;eax = png_ptr ;eax = png_ptr
cmp eax,0 or eax,eax
je .end0 ;if (..!=0) jz .end0 ;if (..!=0)
; png_ptr->zstream holds a back-pointer to the png_struct, so ; png_ptr->zstream holds a back-pointer to the png_struct, so
; this can only be done now: ; this can only be done now:
@ -379,34 +376,27 @@ endp
; Allocate the memory for an info_struct for the application. ; Allocate the memory for an info_struct for the application.
;png_infop (png_structrp png_ptr) ;png_infop (png_structrp png_ptr)
align 4 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' png_debug 1, 'in png_create_info_struct'
;ebx - info_ptr dd ? ;png_inforp
mov edi,[png_ptr] mov eax,[png_ptr]
cmp edi,0 or eax,eax
jne @f ;if (..==0) return 0 jz .end_f ;if (..==0) return 0
xor eax,eax
jmp .end_f
@@:
; Use the internal API that does not (or at least should not) error out, so ; 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 ; that this call always returns ok. The application typically sets up the
; error handling *after* creating the info_struct because this is the way it ; error handling *after* creating the info_struct because this is the way it
; has always been done in 'example.asm'. ; has always been done in 'example.asm'.
stdcall png_malloc_base, edi, sizeof.png_info_def stdcall png_malloc_base, eax, sizeof.png_info_def
mov ebx,eax or eax,eax
jz .end_f
cmp eax,0 push eax
je @f
mov edi,eax mov edi,eax
xor eax,eax xor eax,eax
mov ecx,sizeof.png_info_def mov ecx,sizeof.png_info_def
rep stosb ;memset(... rep stosb ;memset(...
@@: pop eax
mov eax,ebx
.end_f: .end_f:
ret ret
endp endp
@ -428,8 +418,8 @@ proc png_destroy_info_struct uses eax ebx ecx edi, png_ptr:dword, info_ptr_ptr:d
je .end_f ;if (..==0) return je .end_f ;if (..==0) return
mov edi,[info_ptr_ptr] mov edi,[info_ptr_ptr]
cmp edi,0 ;if (..!=0) or edi,edi ;if (..!=0)
je .end_f jz .end_f
; Do this first in case of an error below; if the app implements its own ; 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 ; memory management this can lead to png_free calling png_error, which
; will abort this routine and return control to the app error handler. ; will abort this routine and return control to the app error handler.
@ -490,11 +480,11 @@ proc png_data_freer uses edi esi, png_ptr:dword, info_ptr:dword, freer:dword, ma
png_debug 1, 'in png_data_freer' png_debug 1, 'in png_data_freer'
mov edi,[png_ptr] mov edi,[png_ptr]
cmp edi,0 or edi,edi
je .end_f jz .end_f
mov esi,[info_ptr] mov esi,[info_ptr]
cmp esi,0 or esi,esi
je .end_f ;if (..==0 || ..==0) return jz .end_f ;if (..==0 || ..==0) return
; if (freer == PNG_DESTROY_WILL_FREE_DATA) ; if (freer == PNG_DESTROY_WILL_FREE_DATA)
; info_ptr->free_me |= mask; ; info_ptr->free_me |= mask;
@ -514,11 +504,11 @@ proc png_free_data uses eax edi esi, png_ptr:dword, info_ptr:dword, mask:dword,
png_debug 1, 'in png_free_data' png_debug 1, 'in png_free_data'
mov edi,[png_ptr] mov edi,[png_ptr]
cmp edi,0 or edi,edi
je .end_f jz .end_f
mov esi,[info_ptr] mov esi,[info_ptr]
cmp esi,0 or esi,esi
je .end_f ;if (..==0 || ..==0) return jz .end_f ;if (..==0 || ..==0) return
if PNG_TEXT_SUPPORTED eq 1 if PNG_TEXT_SUPPORTED eq 1
; Free text item num or (if num == -1) all text items ; Free text item num or (if num == -1) all text items
@ -722,8 +712,8 @@ endp
align 4 align 4
proc png_get_io_ptr, png_ptr:dword proc png_get_io_ptr, png_ptr:dword
mov eax,[png_ptr] mov eax,[png_ptr]
cmp eax,0 or eax,eax
je @f ;if (..==0) return 0 jz @f ;if (..==0) return 0
mov eax,[eax+png_struct.io_ptr] mov eax,[eax+png_struct.io_ptr]
@@: @@:
ret ret
@ -742,8 +732,8 @@ proc png_init_io uses eax edi, png_ptr:dword, fp:dword
png_debug 1, 'in png_init_io' png_debug 1, 'in png_init_io'
mov edi,[png_ptr] mov edi,[png_ptr]
cmp edi,0 or edi,edi
je @f ;if (..==0) return jz @f ;if (..==0) return
mov eax,[fp] mov eax,[fp]
mov [edi+png_struct.io_ptr],eax mov [edi+png_struct.io_ptr],eax
@@: @@:
@ -967,8 +957,8 @@ proc png_handle_as_unknown uses ecx edi esi, png_ptr:dword, chunk_name:dword
; bytep p, p_end; ; bytep p, p_end;
mov edi,[png_ptr] mov edi,[png_ptr]
cmp edi,0 or edi,edi
je .end0 jz .end0
cmp dword[chunk_name],0 cmp dword[chunk_name],0
je .end0 je .end0
cmp dword[edi+png_struct.num_chunk_list],0 cmp dword[edi+png_struct.num_chunk_list],0
@ -1020,8 +1010,8 @@ endp
align 4 align 4
proc png_reset_zstream, png_ptr:dword proc png_reset_zstream, png_ptr:dword
mov eax,[png_ptr] mov eax,[png_ptr]
cmp eax,0 or eax,eax
jne @f ;if (..==0) jnz @f ;if (..==0)
mov eax,Z_STREAM_ERROR mov eax,Z_STREAM_ERROR
jmp .end_f jmp .end_f
@@: @@:
@ -1289,8 +1279,8 @@ endp
align 4 align 4
proc png_colorspace_sync uses ecx edi esi, png_ptr:dword, info_ptr:dword proc png_colorspace_sync uses ecx edi esi, png_ptr:dword, info_ptr:dword
mov edi,[info_ptr] mov edi,[info_ptr]
cmp edi,0 or edi,edi
je @f ;if (..==0) ;reduce code size; check here not in the caller jz @f ;if (..==0) ;reduce code size; check here not in the caller
mov ecx,sizeof.png_colorspace mov ecx,sizeof.png_colorspace
mov esi,[png_ptr] mov esi,[png_ptr]
add esi,png_struct.colorspace add esi,png_struct.colorspace
@ -1935,8 +1925,8 @@ locals
message rb 196 ;char[] ;see below for calculation message rb 196 ;char[] ;see below for calculation
endl endl
mov eax,[colorspace] mov eax,[colorspace]
cmp eax,0 or eax,eax
je @f ;if (..!=0) jz @f ;if (..!=0)
or word[eax+png_colorspace.flags], PNG_COLORSPACE_INVALID or word[eax+png_colorspace.flags], PNG_COLORSPACE_INVALID
@@: @@:
@ -2857,8 +2847,8 @@ else
@@: @@:
end if end if
cmp ebx,0 or ebx,ebx
je @f jz @f
png_error edi, 'Invalid IHDR data' png_error edi, 'Invalid IHDR data'
@@: @@:
ret ret
@ -4432,8 +4422,8 @@ endp
align 4 align 4
proc png_set_option uses ecx, png_ptr:dword, option:dword, onoff:dword proc png_set_option uses ecx, png_ptr:dword, option:dword, onoff:dword
mov eax,[png_ptr] mov eax,[png_ptr]
cmp eax,0 or eax,eax
je @f jz @f
mov ecx,[option] mov ecx,[option]
cmp ecx,0 cmp ecx,0
jl @f jl @f
@ -4695,8 +4685,8 @@ proc png_image_free uses eax ebx, image:dword
; png_safe_execute will call this API after the return. ; png_safe_execute will call this API after the return.
mov ebx,[image] mov ebx,[image]
cmp ebx,0 or ebx,ebx
je @f jz @f
cmp dword[ebx+png_image.opaque],0 cmp dword[ebx+png_image.opaque],0
je @f je @f
mov eax,[ebx+png_image.opaque] mov eax,[ebx+png_image.opaque]

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
use32 use32
org 0x0 org 0
db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
dd 1,start,i_end,mem,stacktop,0,sys_path dd 1,start,i_end,mem,stacktop,0,sys_path
@ -42,11 +42,12 @@ include '../../../macros.inc'
include '../../../proc32.inc' include '../../../proc32.inc'
include '../../../KOSfuncs.inc' include '../../../KOSfuncs.inc'
include '../../../load_img.inc' include '../../../load_img.inc'
include '../../../load_lib.mac'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac' include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
include 'le_pole.inc' include 'le_pole.inc'
include 'le_signal.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 ;¯®¤¯¨áì ®ª­  caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 13.02.16',0 ;¯®¤¯¨áì ®ª­ 
panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢ panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢
@ -171,12 +172,6 @@ mcs dd 1, 0, 0, 1,\
0,-1, 1, 0 0,-1, 1, 0
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 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 cursors_count equ 4
@ -196,7 +191,7 @@ align 4
start: start:
load_libraries l_libs_start,l_libs_end load_libraries l_libs_start,l_libs_end
;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ¡¨¡«¨®â¥ª  ;¯à®¢¥àª  ­  ᪮«ìª® 㤠筮 § £ã§¨« áì ¡¨¡«¨®â¥ª 
mov ebp,lib_7 mov ebp,lib4
cmp dword [ebp+ll_struc_size-4],0 cmp dword [ebp+ll_struc_size-4],0
jz @f jz @f
mcall SF_TERMINATE_PROCESS mcall SF_TERMINATE_PROCESS
@ -205,7 +200,7 @@ start:
mcall SF_SET_EVENTS_MASK,0x27 mcall SF_SET_EVENTS_MASK,0x27
;*** áç¨â뢠­¨¥ ­ áâ஥ª ¨§ *.ini ä ©«  ;*** áç¨â뢠­¨¥ ­ áâ஥ª ¨§ *.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 stdcall dword[ini_get_color],file_name,ini_sec_color,key_color_bkgnd,ini_def_c_bkgnd
mov dword[buf_0.color],eax mov dword[buf_0.color],eax
@ -642,7 +637,7 @@ pushad
mcall SF_CREATE_WINDOW, (20 shl 16)+580,(20 shl 16)+415 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 add ebx,25 shl 16
mov edx,4 mov edx,4
@ -758,27 +753,26 @@ pushad
stdcall pole_draw_pok, pole stdcall pole_draw_pok, pole
; *** ᮧ¤ ­¨¥ ª­®¯®ª ãáâ ­®¢ª¨ ᨣ­ «®¢ set_0 ¨ set_1 *** ; *** ᮧ¤ ­¨¥ ª­®¯®ª ãáâ ­®¢ª¨ ᨣ­ «®¢ 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, [sc.work_button]
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20
add ebx,25 shl 16 add ebx,25 shl 16
mov edx,21 inc edx
int 0x40 int 0x40
add ebx,30 shl 16 add ebx,30 shl 16
mov edx,22 inc edx
int 0x40 int 0x40
add ebx,25 shl 16 add ebx,25 shl 16
mov edx,23 inc edx
int 0x40 int 0x40
add ebx,25 shl 16 add ebx,25 shl 16
mov edx,24 inc edx
int 0x40 int 0x40
add ebx,25 shl 16 add ebx,25 shl 16
mov edx,25 inc edx
int 0x40 int 0x40
mov ecx,[sc.work_text] mov ecx,[sc.work_text]
@ -808,8 +802,7 @@ pushad
int 0x40 int 0x40
; *** ᮧ¤ ­¨¥ ª­®¯®ª à¨á®¢ ­¨ï ¯à®¢®¤  *** ; *** ᮧ¤ ­¨¥ ª­®¯®ª à¨á®¢ ­¨ï ¯à®¢®¤  ***
mov esi,[sc.work_button] mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30, [sc.work_button]
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30
add ebx,30 shl 16 add ebx,30 shl 16
mov edx,31 mov edx,31
@ -1042,11 +1035,6 @@ shem_colors:
dd color_s0, color_s1, color_s2, color_s3 dd color_s0, color_s1, color_s2, color_s3
color_captions dd 0x808080 color_captions dd 0x808080
align 4
open_file_lif:
rb 2*4096 ;®¡« áâì ¤«ï ®âªàëâ¨ï ä ©«®¢
.end:
align 4 align 4
but_open_file: but_open_file:
pushad pushad
@ -1080,8 +1068,8 @@ but_open_file:
mov esi,txt_size mov esi,txt_size
call str_analiz_r call str_analiz_r
cmp edi,0 or edi,edi
je @f jz @f
stdcall str_len,esi stdcall str_len,esi
add edi,eax add edi,eax
stdcall conv_str_to_int,edi stdcall conv_str_to_int,edi
@ -1104,8 +1092,8 @@ but_open_file:
mov esi,txt_elements mov esi,txt_elements
call str_analiz_r call str_analiz_r
cmp edi,0 or edi,edi
je .end_elems jz .end_elems
stdcall str_len,esi stdcall str_len,esi
add edi,eax add edi,eax
stdcall conv_str_to_int,edi stdcall conv_str_to_int,edi
@ -1416,8 +1404,8 @@ pushad
inc edx inc edx
push edx push edx
stdcall pole_cell_find, edi stdcall pole_cell_find, edi
cmp eax,0 or eax,eax
je @f jz @f
or dword[napr],1 or dword[napr],1
@@: @@:
@ -1427,8 +1415,8 @@ pushad
mov edx,[ebx+offs_cell_x] mov edx,[ebx+offs_cell_x]
push edx push edx
stdcall pole_cell_find, edi stdcall pole_cell_find, edi
cmp eax,0 or eax,eax
je @f jz @f
or dword[napr],2 or dword[napr],2
@@: @@:
@ -1438,8 +1426,8 @@ pushad
dec edx dec edx
push edx push edx
stdcall pole_cell_find, edi stdcall pole_cell_find, edi
cmp eax,0 or eax,eax
je @f jz @f
or dword[napr],4 or dword[napr],4
@@: @@:
@ -1449,8 +1437,8 @@ pushad
mov edx,[ebx+offs_cell_x] mov edx,[ebx+offs_cell_x]
push edx push edx
stdcall pole_cell_find, edi stdcall pole_cell_find, edi
cmp eax,0 or eax,eax
je @f jz @f
or dword[napr],8 or dword[napr],8
@@: @@:
@ -1970,14 +1958,12 @@ proc move_rotate_n90 uses ecx edi, d_x:dword, d_y:dword, angle:dword
endp endp
align 4 align 4
proc mem_copy, destination:dword, source:dword, len:dword proc mem_copy uses ecx esi edi, destination:dword, source:dword, len:dword
push ecx esi edi
cld cld
mov esi, dword[source] mov edi,[destination]
mov edi, dword[destination] mov esi,[source]
mov ecx, dword[len] mov ecx,[len]
rep movsb rep movsb
pop edi esi ecx
ret ret
endp endp
@ -2290,8 +2276,8 @@ proc set_pen_mode uses eax ebx ecx edx, mode:dword, icon:dword, hot_p:dword
add ecx,[buf_curs.data] add ecx,[buf_curs.data]
mcall SF_MOUSE_GET,SSF_LOAD_CURSOR mcall SF_MOUSE_GET,SSF_LOAD_CURSOR
cmp eax,0 or eax,eax
je @f jz @f
mov [cursor_pointer],eax mov [cursor_pointer],eax
mcall SF_MOUSE_GET,SSF_SET_CURSOR,[cursor_pointer] mcall SF_MOUSE_GET,SSF_SET_CURSOR,[cursor_pointer]
@@: @@:
@ -2339,15 +2325,6 @@ db 0
include 'le_libs.inc' include 'le_libs.inc'
mouse_dd dd 0x0
sc system_colors
last_time dd 0
align 16
procinfo process_information
align 4 align 4
buf_0: dd 0 ; buf_0: dd 0 ;
.l: dw 170 ;+4 left .l: dw 170 ;+4 left
@ -2360,8 +2337,7 @@ buf_0: dd 0 ;
align 4 align 4
buf_font: ;¡ãä¥à á® èà¨ä⮬ buf_font: ;¡ãä¥à á® èà¨ä⮬
dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 25 ;+4 left dw 25,25 ;+4 left,top
dw 25 ;+6 top
dd 96 ;+8 w dd 96 ;+8 w
dd 144 ;+12 h dd 144 ;+12 h
dd 0 ;+16 color dd 0 ;+16 color
@ -2370,8 +2346,7 @@ buf_font: ;
align 4 align 4
buf_curs: ;¡ãä¥à á ªãàá®à ¬¨ buf_curs: ;¡ãä¥à á ªãàá®à ¬¨
.data: dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï .data: dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 0 ;+4 left dw 0,0 ;+4 left,top
dw 0 ;+6 top
dd 32 ;+8 w dd 32 ;+8 w
dd 32*cursors_count ;+12 h dd 32*cursors_count ;+12 h
dd 0 ;+16 color dd 0 ;+16 color
@ -2380,8 +2355,7 @@ buf_curs: ;
align 4 align 4
buf_curs_8: ;¡ãä¥à á ªãàá®à ¬¨ buf_curs_8: ;¡ãä¥à á ªãàá®à ¬¨
.data: dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï .data: dd 0 ;㪠§ â¥«ì ­  ¡ãä¥à ¨§®¡à ¦¥­¨ï
dw 0 ;+4 left dw 0,0 ;+4 left,top
dw 0 ;+6 top
dd 32 ;+8 w dd 32 ;+8 w
dd 32*cursors_count ;+12 h dd 32*cursors_count ;+12 h
dd 0 ;+16 color dd 0 ;+16 color
@ -2618,13 +2592,22 @@ align 4
align 16 align 16
i_end: 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 run_file_70 FileInfoBlock
open_file_lif:
rb 2*4096 ;®¡« áâì ¤«ï ®âªàëâ¨ï ä ©«®¢
.end:
rb 1024 rb 1024
stacktop: stacktop:
sys_path rb 1024 sys_path rb 1024
file_name: file_name rb 2048 ;4096
rb 1024 ;4096
library_path rb 1024
plugin_path rb 4096 plugin_path rb 4096
openfile_path rb 4096 openfile_path rb 4096
filename_area rb 256 filename_area rb 256

View File

@ -44,8 +44,9 @@ include 'lang.inc' ;
include '../../macros.inc' include '../../macros.inc'
include '../../proc32.inc' include '../../proc32.inc'
include '../../dll.inc' include '../../dll.inc'
include '../../KOSfuncs.inc'
include '../../develop/libraries/box_lib/trunk/box_lib.mac' ;êîìïîíåíòû checkBox è editBox 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 @use_library
KMENUITEM_NORMAL equ 0 KMENUITEM_NORMAL equ 0
@ -1431,13 +1432,6 @@ valueModeMenu1 db '
valueModeMenu2 db '०¨¬ £®àï祩 ª« ¢¨è¨ ',0 valueModeMenu2 db '०¨¬ £®àï祩 ª« ¢¨è¨ ',0
valueModeMenu3 db '०¨¬ ¦¥áâ  ¯® ª« ¢¨è¥  ªâ¨¢ æ¨¨',0 valueModeMenu3 db '०¨¬ ¦¥áâ  ¯® ª« ¢¨è¥  ªâ¨¢ æ¨¨',0
head_f_i:
head_f_l db '‘¨á⥬­ ï ®è¨¡ª ',0
err_message_found_lib0 db '<27>¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'proc_lib.obj',39,0
err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
err_message_found_lib1 db '<27>¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
hkCaption: db 'Š« ¢¨è :',0 hkCaption: db 'Š« ¢¨è :',0
;hkHint: db '<27> ¦¬¨â¥ «î¡ãî ª« ¢¨èã',0 ;hkHint: db '<27> ¦¬¨â¥ «î¡ãî ª« ¢¨èã',0
radiusCaption: db '<27> ¤¨ãá:',0 radiusCaption: db '<27> ¤¨ãá:',0
@ -1468,13 +1462,6 @@ valueModeMenu1 db 'classic mode ',0
valueModeMenu2 db 'hot key mode ',0 valueModeMenu2 db 'hot key mode ',0
valueModeMenu3 db 'activation key gesture 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 hkCaption: db 'Key:',0
;hkHint: db 'press any key',0 ;hkHint: db 'press any key',0
radiusCaption: db 'Radius:',0 radiusCaption: db 'Radius:',0
@ -1717,24 +1704,17 @@ coordModeMenu:
.y dw 200 .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/' system_dir0 db '/sys/lib/'
lib0_name db 'proc_lib.obj',0 lib0_name db 'proc_lib.obj',0
system_dir1 db '/sys/lib/'
lib1_name db 'kmenu.obj',0 lib1_name db 'kmenu.obj',0
symbolDownArrow db 25,0 symbolDownArrow db 25,0
;library structures ;library structures
l_libs_start: 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 lib0 l_libs lib0_name, file_name, system_dir0, import_proclib
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 lib1 l_libs lib1_name, file_name, system_dir1, import_libkmenu
load_lib_end: load_lib_end:
@ -1748,6 +1728,14 @@ editRU edit_box 230-buttonW,290,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x1000000
editRD edit_box 230-buttonW,290,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax editRD edit_box 230-buttonW,290,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax
editRadius edit_box 40,(buttonHotKeyX + buttonHotKeyWidth + 20),buttonModeY, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, 4, radiusBuffer.data, mouse_dd, ed_figure_only, edMax, edMax 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 align 4
import_libkmenu: import_libkmenu:
kmenu_init dd akmenu_init kmenu_init dd akmenu_init