Application API Nativa !

1. Application API Nativa !

???
gokernel

(usa Linux Mint)

Enviado em 07/09/2018 - 10:23h

Olá Pessoal !!!

É com muita alegria que vos apresento a Application API:

Essa é uma C/WEB API já implementada na Summer Language.
OBS: por enquanto só implementada( C ) para Windows nativamente ...

Essa API me interessa muito ... rodar (Summer Language & WEB) sem modificar uma única linha de código !!!

OBS: Para testar o arquivo ( index.html ) no navegador, abra o Console do navegador usando a tecla F12 para ver a "saida"...

Projeto aqui:
https://github.com/gokernel2017/Summer

Exemplo arquivo: "app.sum"

//-------------------------------------------------------------------
//
// Summer Application API ( C & WEB ):
//
//
// FILE:
// app.sum
//
//
// USAGE SUMMER WINDOWS:
// summer app.sum
//
//
// USAGE WEB (... Open the WEB CONSOLE ...):
// index.html
//
//
// USAGE Node WebKit ( see package.json ):
// nw ./
//
//
// BY: Francisco - gokernel@hotmail.com
//
//-------------------------------------------------------------------
//
var count = 0;
var count2 = 0;

var win1, win2, button1, button2;

function call1 (event) {
console.log ("BUTTON 1 CALL - count: %d", count);
count++;
}

function call2 (event) {
console.log ("Button 2: %d", count2);
count2++;
}

if (AppInit(0,0)) {

win1 = AppNewWindow (0, 200, 100, 320, 240, "Application API: BETA");
win2 = AppNewWindow (0, 400, 200, 320, 240, "Window 2");

button1 = AppNewButton (win1, 70, 50, 150, 40, "Button 1: Count");
button2 = AppNewButton (win1, 70, 120, 150, 40, "Button 2: Simple");

AppSetCall (button1, call1);
AppSetCall (button2, call2);

AppRun ();
}


Exemplo arquivo: "index.html"

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Application API</title>
<link href="application.css" rel="stylesheet">
<script src="application.js"></script>
</head>
<body>
<script src="app.sum"></script>
</body>
</html>



Para compilar leia o arquivo: README.txt

Beta Ainda ... "Trabalhando ..." .



  


2. Re: Application API Nativa !

???
gokernel

(usa Linux Mint)

Enviado em 12/09/2018 - 11:40h

Olá pessoal, projeto atualizado !!!

NOTA:
A Application API, foi temporariamente "pausada/engavetada" para testar a GA API ( Graphic Application API) ... é uma API sem "objeto" que pretendo rodar com (OpenGL, DirectX, HTML_Canvas)... RESUMO: é um "FPS".

Ainda em BETA ... Iniciada hoje(12/09/2018)... somente teste básico...

Simple Exemplo: app.sum

//-------------------------------------------------------------------
//
// GA: Graphic Application API.
//
// A portable graphic API ( C & WEB ) ... OpenGL, DirectX, HTML_Canvas.
//
// Simple Example:
//
//-------------------------------------------------------------------
//
var count=0;

function idle () {
console.log("Idle Count: %d", count);
count++;
}

if (gaInit(800,600,idle)) {

gaRun ();
}


Para executar na Summer Language (Windows e Linux):
summer app.sum

Para executar na WEB(Abra o console com a tecla F12):
index.html

Para executar no Node WebKit:
nw ./

Esse exemplo apenas cria um canvas e chama continuamente a funcao ( requestAnimationFrame (gaRun) ) em modo WEB.





3. Re: Application API Nativa !

???
gokernel

(usa Linux Mint)

Enviado em 17/09/2018 - 07:41h

Projeto atualizado !!!

Pronto, implementei usando SDL 1.x e estou "Happy" ... usando OpenGL estava me dando "dores de cabeça", não tinha a GL(dev) instalada no Mint 12... e não vou atualizar o OS.

Quem não tem SDL(dev) instalada e quiser compilar, basta comentar no arquivo ( summer.h ):

---------------------------------------------------------------------------------
Para Windows: LINHA 36: #define USE_GA // Graphic Application API ( C & WEB ):

Para Linux: LINHA 44: #define USE_GA // Graphic Application API ( C & WEB ):

E comentar( # ) no arquivo Makefile_JIT, a referência ( -lSDL )

---------------------------------------------------------------------------------

Códigos liberados para testes em geral ... BETA AINDA.



4. Re: Application API Nativa !

???
gokernel

(usa Linux Mint)

Enviado em 17/09/2018 - 16:32h

Olá pessoal !!!

Implementado DirectX ... para nossa diversão agora pode-se ver um FPS de 1200 Quadros ;).

Para compilar para DirectX edite o arquivo ( src\config.h ), e descomente/comente:

// #define USE_SDL // comente essa linha
#define USE_DIRECTX // <<<<<<<<<< e descomente ESSA >>>>>>>>>>


No arquivo Makefile_JIT, descomente a referencia para Linkage com DirectX:

LIBS = -ld3dx8d -ld3d8 -lgdi32 -lwinmm


Boa diversão na nova "Silicon Graphics API" ;).




5. Re: Application API Nativa !

???
gokernel

(usa Linux Mint)

Enviado em 19/09/2018 - 09:01h

Olá pessoal !


Projeto atualizado, adicionei um "simples button" só para clicar e testar:
TESTANDO: clicar em um "button" e mover o mouse.

NOTA1: em modo WEB( no navegador ) para exibir o console, basta apertar a tecla F12.
NOTA2: para sair do programa em modo SDL, sai com a tecla F12.

NOTA3: apaguei alguns posts para evitar poluição visual...

INFO:
Quem quiser compilar usando DirectX e não tiver os "includes" e o arquivo ( d3dx8d.dll ), visite minha API DirectX_8_9 e baixe os arquivos aqui:
https://github.com/gokernel2017/DirectX_8_9


Teste arquivo: app.sum


//-------------------------------------------------------------------
//
// GA: Graphic Application API.
//
// A portable graphic API ( C & WEB ) ... OpenGL, DirectX, HTML_Canvas.
//
// Usage SUMMER:
// summer app.sum
//
// Usage WEB:
// index.html
//
// Usage NODE WEBKIT ( see package.json ):
// nw .
//
// BY: Francisco - gokernel@hotmail.com
//
//-------------------------------------------------------------------
//
//-------------------------------------------------------------------
// NOTE:
// Implemented Function Argument (EVENT) only:
//
// .offsetX; | mouse_x
// .offsetY; | mouse_y
// .which; | mouse_button := 1 or 3
//
// Please Wait ...
//
//-------------------------------------------------------------------
//

var mx = 0;
var my = 0;
var click = 0;
var count = 0;

//
// e.which := 1 or 3
//
function onMouseDown (e) {

if (mx > 50 && mx < 170) {

// button 1:
if (my > 50 && my < 80) {

click = e.which;

console.log("Button 1: %d %d", e.which, count);
count++;
}

// button 2:
if (my > 100 && my < 130) {

click = e.which;

console.log("Button 2 HELLO: %d %d", e.which, count);
count++;
}
}
}

//
// e.which := 1 or 3
//
function onMouseUp (e) {
click = 0;
}

function onMouseMove (e) {
mx = e.offsetX;
my = e.offsetY;
if (click) {
console.log("X: %d Y: %d click: %d\n", e.offsetX, e.offsetY, click);
}
}

function idle () {

gaBeginScene(); //<<<<<<<<<< DRAW START >>>>>>>>>>

gaFPS(); // display FPS count

gaDisplayMouse (mx, my);

//
// only for testing:
//
gaButton (50, 50, 120, 30, "Button 1");
gaButton (50, 100, 120, 30, "Button HELLO");

gaEndScene(); //<<<<<<<<<< DRAW END >>>>>>>>>>

}

if (gaInit(800,600,idle)) {

gaSetCall (onMouseMove, "onmousemove");
gaSetCall (onMouseDown, "onmousedown");
gaSetCall (onMouseUp, "onmouseup");

gaRun ();

}




6. Re: Application API Nativa !

???
gokernel

(usa Linux Mint)

Enviado em 19/09/2018 - 14:24h


Projeto atualizado !

Caramba !, não consegui tirar uma soneca tranquila só pensando nos "horrorosos buttons" ... implementei um visual mais bonito pelo menos para o modo SDL.

Visual dos "buttons" melhorado para SDL MODE... OBS: só para testes.



7. Re: Application API Nativa !

???
gokernel

(usa Linux Mint)

Enviado em 20/09/2018 - 08:45h

Olá pessoal, projeto atualizado !

BUG encontrado(em 64 bits) e corrigido( parcialmente ) ... estou trabalhando para resolver o BUG completamente.

OBS: antes de enviar os códigos não tinha testado em 64 bits.

O BUG: é quando pega o argumento ( em 64 bits EVENTO e ) dentro de uma função ... estou tentando resolver e que Deus me ajude em nome de Jesus Cristo !!!.

Esse código funciona OK:

//-------------------------------------------------------------------
//
// GA: Graphic Application API.
//
// A portable graphic API ( C & WEB ) ... OpenGL, DirectX, HTML_Canvas.
//
// Usage SUMMER:
// summer app.sum
//
// Usage WEB:
// index.html
//
// Usage NODE WEBKIT ( see package.json ):
// nw .
//
// BY: Francisco - gokernel@hotmail.com
//
//-------------------------------------------------------------------
//
//-------------------------------------------------------------------
// NOTE:
// Implemented Function Argument (EVENT) only:
//
// .offsetX; | mouse_x
// .offsetY; | mouse_y
// .which; | mouse_button := 1 or 3
//
// Please Wait ...
//
//-------------------------------------------------------------------
//

var mx = 0;
var my = 0;
var click = 0;
var count = 0;
var is_button = 0;

//
// e.which := 1 or 3
//
function onMouseDown (e) {

is_button = 0;

if (mx > 50 && mx < 170) {

if (my > 50 && my < 80) { // button 1:
is_button = 1;
}
if (my > 100 && my < 130) { // button 2:
is_button = 2;
}

if (is_button) {
click = e.which;
console.log("Button: %d | click: %d", is_button, e.which);
count++;
}
}
}

//
// e.which := 1 or 3
//
function onMouseUp (e) {
click = 0;
}

function onMouseMove (e) {
mx = e.offsetX;
my = e.offsetY;
if (click) {
console.log("X: %d Y: %d click: %d\n", e.offsetX, e.offsetY, click);
}
}

//
// Main CallBack:
//
function draw () {

gaBeginScene(); //<<<<<<<<<< DRAW START >>>>>>>>>>

gaFPS(); // display FPS count

gaDisplayMouse (mx, my);

//
// only for testing:
//
gaButton (50, 50, 120, 30, "Button 1");
gaButton (50, 100, 120, 30, "Button HELLO");

gaEndScene(); //<<<<<<<<<< DRAW END >>>>>>>>>>

}

if (gaInit(800,600,draw)) {

gaSetCall (onMouseMove, "onmousemove");
gaSetCall (onMouseDown, "onmousedown");
gaSetCall (onMouseUp, "onmouseup");

gaRun ();

}



Por gentileza:
Se alguém ver algo de "anormal" na Summer Language, favor reportar via E-mail que ficarei grato e tentarei resolver ... é porque não tenho tempo para "testar tudo".




8. Re: Application API Nativa !

???
gokernel

(usa Linux Mint)

Enviado em 23/09/2018 - 10:06h


Projeto atualizado !

Pronto, BUG resolvido ... e glória a Deus !!!

Esse código agora funciona normalmente ( app.sum ):

//-------------------------------------------------------------------
//
// GA: Graphic Application API.
//
// A portable graphic API ( C & WEB ) ... OpenGL, DirectX, HTML_Canvas.
//
// Usage SUMMER:
// summer app.sum
//
// Usage WEB:
// index.html
//
// Usage NODE WEBKIT ( see package.json ):
// nw .
//
// BY: Francisco - gokernel@hotmail.com
//
//-------------------------------------------------------------------
//
//-------------------------------------------------------------------
// NOTE:
// Implemented Function Argument (EVENT) only:
//
// .offsetX; | mouse_x
// .offsetY; | mouse_y
// .which; | mouse_button := 1 or 3
//
// Please Wait ...
//
//-------------------------------------------------------------------
//

var mx = 0;
var my = 0;
var click = 0;
var count = 0;

//
// e.which := 1 or 3
//
function onMouseDown (e) {

if (mx > 50 && mx < 170) {

if (my > 50 && my < 80) { // button 1:
click = e.which;
console.log("Button: %d", e.which);
count++;
}
if (my > 100 && my < 130) { // button 2:
click = e.which;
console.log("Button HELLO: %d", e.which);
count++;
}
}
}

//
// e.which := 1 or 3
//
function onMouseUp (e) {
click = 0;
}

function onMouseMove (e) {
mx = e.offsetX;
my = e.offsetY;
if (click) {
console.log("X: %d Y: %d click: %d\n", e.offsetX, e.offsetY, click);
}
}

//
// Main CallBack:
//
function draw () {

gaBeginScene(); //<<<<<<<<<< DRAW START >>>>>>>>>>

gaFPS(); // display FPS count

gaDisplayMouse (mx, my);

//
// only for testing:
//
gaButton (50, 50, 120, 30, "Button 1");
gaButton (50, 100, 120, 30, "Button HELLO");

gaEndScene(); //<<<<<<<<<< DRAW END >>>>>>>>>>

}

if (gaInit(800,600,draw)) {

gaSetCall (onMouseMove, "onmousemove");
gaSetCall (onMouseDown, "onmousedown");
gaSetCall (onMouseUp, "onmouseup");

gaRun ();

}









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts