From 0d1e31ebc478798e6624c6abaed424d0574c1aab Mon Sep 17 00:00:00 2001 From: Sun Serega Date: Mon, 10 Jan 2022 18:02:59 +0200 Subject: [PATCH 1/6] update --- .../OpenCLABC/Wait очереди/2.pas | 19 +- .../Wait очереди/NamedQData.pas | 4 +- ...ользованию OpenGL и OpenCL.html | 36 +- .../Справка OpenCLABC.html | 480 +- .../Справка OpenGLABC.html | 10 +- bin/Lib/OpenCLABC.pas | 4984 +++++++++++------ 6 files changed, 3736 insertions(+), 1797 deletions(-) diff --git a/InstallerSamples/OpenGL и OpenCL/OpenCLABC/Wait очереди/2.pas b/InstallerSamples/OpenGL и OpenCL/OpenCLABC/Wait очереди/2.pas index 6641d61df..dfcedfae2 100644 --- a/InstallerSamples/OpenGL и OpenCL/OpenCLABC/Wait очереди/2.pas +++ b/InstallerSamples/OpenGL и OpenCL/OpenCLABC/Wait очереди/2.pas @@ -25,15 +25,22 @@ begin var E1 := NamedQ('E1'); var E2 := NamedQ('E2'); - // Дерево выполнения из данной программы может решать задачу такого типа: - // > Два парралельных процесса выполняются последовательно и иногда взаимодействуют - // Его можно расписать без Wait, к примеру как "A1*A2 + B1 + C1*C2 + D2 + E1*E2" - // И результат будет тот же, но такое дерево уже не похоже по форме на изначальную задачу - // Если между деревом и задачей сложно провести параллели - программу будет сложно улучшать - // (то есть будет сложно понять что делает что в очереди) Context.Default.SyncInvoke( ( A1 + B1 + C1 + Dw + E1 ) * ( A2 + Bw + C2 + D2 + E2 ) ); + Writeln('='*30); + // Дерево выполнения из данной программы может решать задачу такого типа: + // > Два парралельных процесса выполняются последовательно и иногда взаимодействуют + // Его можно расписать без Wait, к примеру: + var B1s := (A1+B1).Multiusable; + var D2s := ((B1s()*A2)+C2+D2).Multiusable; + Context.Default.SyncInvoke( + ( (B1s()+C1) * D2s() + E1 ) * + ( D2s() + E2 ) + ); + // И результат будет тот же, но такое дерево уже не похоже по форме на изначальную задачу + // Если между деревом и задачей сложно провести параллели - программу будет сложно улучшать + // (то есть будет сложно понять что делает что в очереди) end. \ No newline at end of file diff --git a/InstallerSamples/OpenGL и OpenCL/OpenCLABC/Wait очереди/NamedQData.pas b/InstallerSamples/OpenGL и OpenCL/OpenCLABC/Wait очереди/NamedQData.pas index 89ab493f7..1ce24e48f 100644 --- a/InstallerSamples/OpenGL и OpenCL/OpenCLABC/Wait очереди/NamedQData.pas +++ b/InstallerSamples/OpenGL и OpenCL/OpenCLABC/Wait очереди/NamedQData.pas @@ -5,9 +5,9 @@ uses OpenCLABC; function NamedQ(name: string; delay: integer := 1000) := HPQ(()-> begin - lock output do Writeln($'Очередь {name} начала выполнятся'); + lock output do Writeln($'{Milliseconds} Очередь {name} начала выполнятся'); Sleep(delay); - lock output do Writeln($'Очередь {name} выполнилась'); + lock output do Writeln($'{Milliseconds} Очередь {name} выполнилась'); end); end. \ No newline at end of file diff --git a/InstallerSamples/OpenGL и OpenCL/Гайд по использованию OpenGL и OpenCL.html b/InstallerSamples/OpenGL и OpenCL/Гайд по использованию OpenGL и OpenCL.html index c3da9dcbc..370a0bd44 100644 --- a/InstallerSamples/OpenGL и OpenCL/Гайд по использованию OpenGL и OpenCL.html +++ b/InstallerSamples/OpenGL и OpenCL/Гайд по использованию OpenGL и OpenCL.html @@ -496,16 +496,16 @@ const code_words_color = { "pas": { "keyword": [ "###", "##", "program", "unit", "library", "namespace", - "begin","end", "var", "uses", "as", "new", "try", "except", "on", "do", "const", + "begin","end", "var", "uses", "as", "new", "try", "except", "on", "do", "finally", "const", "procedure", "function", "lock", "type", "class","record", "sizeof","typeof", "external", "static", "array", "where", "or","and", "public","private", "property","constructor", "default", "of", "if","then","else", "div","mod", "extensionmethod", "while", ], "build-in": [ - "nil", "self", "true", "false", + "nil", "self", "true", "false", "value", "string","char", "object", "pointer", "single","real", - "shortint", "smallint", "integer", "int64", - "byte", "word", "longword", "cardinal", "uint64", + "shortint", "smallint", "integer", "int64", + "byte", "word", "longword", "cardinal", "uint64", ], "red": ["ToDo"], }, @@ -912,7 +912,7 @@ window.onload = ()=>{ на случай если вы хотите использовать OpenGL и/или OpenCL, но хотите написать свою высоко-уровневую оболочку. Возможно, ради опыта. Возможно, ради особых оптимизаций. И т.п.

Если вы будете использовать только модули OpenGLABC и OpenCLABC - данная справка вам не нужна, -потому что они специально созданы так, чтоб отстранить программиста от всех сложностей +потому что они специально созданы так, чтобы отстранить программиста от всех сложностей работы с неуправляемыми .dll и предоставить привычный ООП интерфейс со всевозможными удобствами.


Багтрагер

@@ -968,13 +968,13 @@ window.onload = ()=>{

Log

Log содержит логи последней сборки соответствующего модуля.

-

Они в основном используются чтоб было проще увидеть на что именно +

Они в основном используются чтобы было проще увидеть на что именно повлияли ваши изменения и как (используя проверку изменений git'а).

Но файл FinalFuncOverloads.log так же особо полезен перед -началом чистки, чтоб увидеть какие перегрузки уже есть.

+началом чистки, чтобы увидеть какие перегрузки уже есть.


Чтоб применить фиксеры и посмотреть на что они влияют - вызывайте Pack Most.pas.

-

Ну а чтоб полностью собрать модули - вызывайте PackAll.exe в корне репозитория.
+

Ну а чтобы полностью собрать модули - вызывайте PackAll.exe в корне репозитория.
(или .bat файлы там же, для сборки отдельных компонентов)

@@ -1112,7 +1112,7 @@ gl.BeginQuery(QueryTarget.VERTICES_SUBMITTED, name); // Все адреса и экземпляры делегатов создаются в конструкторе // В "<>" указывается имя платформы -// Можете написать "Pl" и нажать Ctrl+пробел, чтоб получить список платформ +// Можете написать "Pl" и нажать Ctrl+пробел, чтобы получить список платформ var gl := new OpenGL.gl<PlWin>; while true do @@ -1137,7 +1137,7 @@ glDebugOutputAMD.DebugMessageEnableAMD(...);

В модуле OpenGL так же есть особые классы, wgl, gdi и glx:

- -